Force Entity Framework 5使用datetime2数据类型

Kna*_*ģis 22 c# entity-framework ef-code-first entity-framework-5

是否可以全局设置Entity Framework DbContextdatetime2用于System.DateTime使用Code-First模型时的所有属性?

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

Sør*_*sen 34

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

modelBuilder.Properties<DateTime>()
    .Configure(c => c.HasColumnType("datetime2"));
Run Code Online (Sandbox Code Playgroud)


Lad*_*nka 7

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