4

我正在使用 EF Core Code-First,需要为多个列设置默认值。

我知道这是为一列设置默认值的语句

modelBuilder.Entity<Registration>()
                        .Property(b => b.AdminFee)
                        .HasDefaultValue(25);

我有 10 个具有不同默认值的字段,想看看是否有一种简单的方法可以一次性设置所有默认值,而不是重复上述代码 10 次。

4

1 回答 1

2

您可以使用元数据 API 来实现它。例如:

var myProps = new Dictionary<string, object>()
{
    { nameof(Registration.AdminFee), 25 },
    { nameof(Registration.AnotherProp1), 35 },
    { nameof(Registration.AnotherProp2), 18 },
    { ... }
};

foreach (var matchingProp in modelBuilder.Entity<Registration>()
            .Metadata
            .GetProperties()
            .Where(x => myProps.ContainsKey(x.Name)))
{
    matchingProp.Relational().DefaultValue = myProps[matchingProp.Name];
}
于 2017-10-21T20:02:10.300 回答