C# 我可以在Fluent API中循环使用类/模型名称来配置实体框架中的实体吗?
在我的ASP.NET/EF核心应用程序中,我有几个模型(类)(比如说20个)都有列名,比如C# 我可以在Fluent API中循环使用类/模型名称来配置实体框架中的实体吗?,c#,entity-framework-6,C#,Entity Framework 6,在我的ASP.NET/EF核心应用程序中,我有几个模型(类)(比如说20个)都有列名,比如 createdAt modifiedAt ... isVisible 我希望使用相同的属性(例如,Required=True、DefaultValue(0)、unique值)等来配置 我一直这样做(模型1,2) modelBuilder.Entity() .HasIndex(p=>p.Column1) .IsUnique(); modelBuilder.Entity() .HasIndex(p=>p.C
createdAt
modifiedAt
...
isVisible
我希望使用相同的属性(例如,Required=True、DefaultValue(0)、unique值)等来配置
我一直这样做(模型1,2)
modelBuilder.Entity()
.HasIndex(p=>p.Column1)
.IsUnique();
modelBuilder.Entity()
.HasIndex(p=>p.Column1)
.IsUnique();
modelBuilder.Entity()
.HasIndex(p=>p.Column1)
.IsUnique();
这很烦人,而且有很多复制、粘贴等内容
有没有更简单的方法来实现这一点..例如使用foreach
foreach (var someModel in <loop through all models here> I don't know how)
{
modelBuilder.Entity<someModel>()
.HasIndex(p => p.Column1)
.IsUnique();
}
foreach(我不知道怎么做)
{
modelBuilder.Entity()
.HasIndex(p=>p.Column1)
.IsUnique();
}
让它们从接口继承。然而,以牺牲清晰度为代价保存字符通常是不值得的。保持模型配置的明确性。也许没有人会为此感谢您,但也没有人会对瓶装魔法感到失望。最好使用具有这些属性的基类,并在所有模型中继承
foreach (var someModel in <loop through all models here> I don't know how)
{
modelBuilder.Entity<someModel>()
.HasIndex(p => p.Column1)
.IsUnique();
}