是否可以全局设置实体框架DbContext
以用于使用 Code-First 模型时datetime2
的所有属性?System.DateTime
我可以通过使用HasColumnType()
方法对每一列执行此操作,但对于现有代码库,我想要一个全局解决方案。
是否可以全局设置实体框架DbContext
以用于使用 Code-First 模型时datetime2
的所有属性?System.DateTime
我可以通过使用HasColumnType()
方法对每一列执行此操作,但对于现有代码库,我想要一个全局解决方案。
由于 EF6 已经推出了很长一段时间,并且这个问题仍然出现在搜索中,因此这里是使用自定义约定来设置 SQL 类型的方法。在 DbContext 类的 OnModelCreating 方法中执行以下操作:
modelBuilder.Properties<DateTime>()
.Configure(c => c.HasColumnType("datetime2"));
不在 EF5 中,但在 EF6(当前为 alpha 版本)中允许使用自定义约定。对于 EF5,您将需要一些基于反射的自定义约定框架,该框架将HasColumnType
通过反射添加对模型构建器的调用 - 检查例如EF Code First Extras(它声称支持可插入约定)。