.netcore2.2 针对日期精确到datetime2(7)精确到微秒迁移解决方案
.NETCORE2.2 针对老的datetime,默认设置到datetime2(7),老的数据格式是datetime只要求精确到毫秒,迁移处理办法
一、日期格式加TypeName上标识
/// <summary>
/// 创建时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime TimeCreate { get; set; }
/// <summary>
/// 更新时间
/// </summary>
[Column(TypeName = "datetime")]
public DateTime TimeUpdate { get; set; }
二、在迁移文件Migrations,protected override void BuildTargetModel(ModelBuilder modelBuilder){}实现
末尾位置,手动改变日期格式为datetime
具体代码
foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
foreach (var item in entity.GetProperties())
{
if (item.ClrType.Name == "datetime")
item.AddAnnotation("Relational:ColumnType", "datetime"); //对应的annotation: [Column(TypeName ="datetime")]
}
}