我们有一个实体框架 5.0 项目,该项目使用 SQL Server 2008 进行代码优先迁移,但所有日期属性都在数据库中创建为datetime
列 - 而不是datetime2
.
datetime
是否可以使用将更新数据库中所有列的add-migration 创建迁移?有没有其他简单的方法可以切换到datetime2
任何地方?
我们有一个实体框架 5.0 项目,该项目使用 SQL Server 2008 进行代码优先迁移,但所有日期属性都在数据库中创建为datetime
列 - 而不是datetime2
.
datetime
是否可以使用将更新数据库中所有列的add-migration 创建迁移?有没有其他简单的方法可以切换到datetime2
任何地方?
这是一篇旧文章,但如果您想将所有日期时间列切换为 datetime2,并将 datetime2 用于您添加的任何新列(换句话说,使 EF 默认使用 datetime2),您可以将其添加到 OnModelCreating 方法你的上下文:
modelBuilder.Properties<DateTime>().Configure(c => c.HasColumnType("datetime2"));
那会得到所有的DateTime和DateTime吗?模型中所有实体的属性。
您可以使用 fluent API 强制datetime2
在 DB 中创建列。
我找到了这个:
在 Code-First Entity Framework 和 SQL Server 中使用 DateTime 属性
你应该能够得到这个想法。
或者,如果您必须坚持使用现有数据库,那么您应该能够创建执行自定义 T-SQL 代码的迁移。这里有一个例子: