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 (它声称支持可插入约定)。