Entity framework core datetime2的EF核心约定

Entity framework core datetime2的EF核心约定,entity-framework-core,Entity Framework Core,我曾参与过一个EF 6项目,在该项目中,我们在框架代码中定义了一个约定,以确保所有具有C#DateTime的实体POCO都映射到Sql Server中的datetime2。既然没有约定,我如何在EF Core中实现这一点?谢谢@DavidG。根据您发送的链接,我认为这会起作用(我现在在一个公司网络上,有一个组策略,不允许NuGet Package Manager控制台调用entityframeworkcore.tools的init.ps1,所以我必须等待在家中尝试) 像这样的怎么样?据我所知,默

我曾参与过一个EF 6项目,在该项目中,我们在框架代码中定义了一个约定,以确保所有具有C#DateTime的实体POCO都映射到Sql Server中的datetime2。既然没有约定,我如何在EF Core中实现这一点?

谢谢@DavidG。根据您发送的链接,我认为这会起作用(我现在在一个公司网络上,有一个组策略,不允许NuGet Package Manager控制台调用entityframeworkcore.tools的init.ps1,所以我必须等待在家中尝试)


像这样的怎么样?据我所知,默认情况下,
Entity Framework Core
为C#DateTime生成
datetime2
列。我认为这取决于Sql Server的版本,但使用它也可以指定数据类型的精度。我正在升级一个在EF6中使用约定的现有框架,以确保datetime2被使用,所以我把它放进去以确保。。。加上其他一些惯例
foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
    var dateTimeProps = entity.GetProperties()
        .Where(p => p.PropertyInfo.PropertyType == typeof(DateTime));
    foreach (var prop in dateTimeProps)
    {
        modelBuilder.Entity(entity.Name).Property(prop.Name).HasColumnType("datetime2");
    }

}