Я хочу установить точность всех десятичных свойств (18,6). В EF6 это было довольно просто:
modelBuilder.Properties<decimal>().Configure(x => x.HasPrecision(18, 6));
но я не могу найти ничего похожего на это в EF Core. Удаление соглашения об исключении каскада было не таким простым, как в EF6, поэтому я нашел следующее обходное решение:
EF6:
modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
EF Core:
foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
relationship.DeleteBehavior = DeleteBehavior.Restrict;
и после того, как я прочитал этот, я попробовал аналогичный подход:
foreach (var entityType in modelBuilder.Model.GetEntityTypes()
.SelectMany(x => x.GetProperties())
.Where(x => x.ClrType == typeof(decimal)))
{
// what to do here?
}
Я хотел бы, если бы я был на правильном пути и как продолжить, или если нет, я должен начать помещать аннотации данных во все свойства decimal
.