core网站开发过程中,发现windows 应用程序日志,总是会提醒 映射转换错误,如下图展示
经测试,虽然不影响正常功能,但是日志持续警告,故此处理如下
foreach (var property in modelBuilder.Model.GetEntityTypes()
.SelectMany(t => t.GetProperties())
.Where(p => p.ClrType == typeof(decimal) || p.ClrType == typeof(decimal?)))
{
// EF Core 1 & 2
property.Relational().ColumnType = "decimal(18, 6)";
// EF Core 3
//property.SetColumnType("decimal(18, 6)");
// EF Core 5
//property.SetPrecision(18);
//property.SetScale(6);
}
// EF Core 6
protected override void ConfigureConventions(
ModelConfigurationBuilder configurationBuilder)
{
configurationBuilder.Properties<decimal>()
.HavePrecision(18, 6);
}
由于本项目中用的是 EF Core 6,故此重写数据库定位器基类,指定类型映射即可。