Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在Fluent API中循环使用类/模型名称来配置实体框架中的实体吗?_C#_Entity Framework 6 - Fatal编程技术网

C# 我可以在Fluent API中循环使用类/模型名称来配置实体框架中的实体吗?

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

在我的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.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();   
}