是否有可能在使用Code-First模型时全局设置Entity Framework的DbContext
,以便所有System.DateTime
属性均使用datetime2
?
我可以使用HasColumnType()
方法为每个列设置此项,但对于现有代码库,我希望有一个全局解决方案。
是否有可能在使用Code-First模型时全局设置Entity Framework的DbContext
,以便所有System.DateTime
属性均使用datetime2
?
我可以使用HasColumnType()
方法为每个列设置此项,但对于现有代码库,我希望有一个全局解决方案。
由于EF6已经发布了一段时间,但是这个问题仍然出现在搜索结果中,下面是使用自定义约定设置SQL类型的方法。在DbContext类中的OnModelCreating方法中执行以下操作:
modelBuilder.Properties<DateTime>()
.Configure(c => c.HasColumnType("datetime2"));
HasColumnType
调用 - 例如检查EF Code First Extras(它声称支持可插拔约定)。
DateTime.MinVal
,强制使用DateTime2
也是合理的。引用 MSDN 的话:对于新工作,请使用时间、日期、datetime2 和 datetimeoffset 数据类型。
- user247702