我正在使用EF Core Code-First,需要为多列设置默认值。
我知道这是为一列设置默认值的声明
modelBuilder.Entity<Registration>()
.Property(b => b.AdminFee)
.HasDefaultValue(25);
我有10个具有不同默认值的字段,想要查看是否有一种简短的方法可以在一次拍摄中设置默认值,而不是重复上述代码10次。
答案 0 :(得分:1)
您可以使用Metadata 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];
}