Force Entity Framework 5使用datetime2数据类型

在使用Code-First模型时,是否可以全局设置Entity Framework DbContext以将datetime2用于System.DateTime所有属性?

我可以使用HasColumnType()方法为每个列执行此操作,但对于现有的代码库,我想要一个全局解决方案。

由于EF6已经出现了很长一段时间,这个问题仍然出现在搜索中,这里是使用自定义约定来设置SQL类型的方法。 在DbContext类的OnModelCreating方法中执行:

 modelBuilder.Properties() .Configure(c => c.HasColumnType("datetime2")); 

不在EF5中,但EF6(目前在alpha版本中)允许使用自定义约定 。 对于EF5,您需要一些基于reflection的基于自定义约定的框架,该框架将通过reflection向模型构建器添加HasColumnType调用 – 检查例如EF Code First Extras (它声称支持可插入约定)。