23

是否可以全局设置实体框架DbContext以用于使用 Code-First 模型时datetime2的所有属性?System.DateTime

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

4

2 回答 2

36

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

modelBuilder.Properties<DateTime>()
    .Configure(c => c.HasColumnType("datetime2"));
于 2015-07-17T21:50:12.420 回答
7

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

于 2013-03-06T13:45:44.130 回答