C# 使用Fluent API对所有EF上下文类使用每种类型的表

C# 使用Fluent API对所有EF上下文类使用每种类型的表,c#,entity-framework,inheritance,fluent-interface,C#,Entity Framework,Inheritance,Fluent Interface,目前,如果我想使用Fluent API来规定表每类型继承策略,我必须执行以下操作: modelBuilder.Entity<User>().ToTable("User"); modelBuilder.Entity<ContentItem>().ToTable("ContentItem"); modelBuilder.Entity<MarketItem>().ToTable("MarketItem"); modelBuilder.Entity().ToTabl

目前,如果我想使用Fluent API来规定表每类型继承策略,我必须执行以下操作:

modelBuilder.Entity<User>().ToTable("User");
modelBuilder.Entity<ContentItem>().ToTable("ContentItem");
modelBuilder.Entity<MarketItem>().ToTable("MarketItem");
modelBuilder.Entity().ToTable(“用户”);
modelBuilder.Entity().ToTable(“ContentItem”);
modelBuilder.Entity().ToTable(“MarketItem”);
如果我忘记为新继承的实体添加命令,它将破坏我的模式

在伪代码中,我想做的是:

foreach (ModelType T in AllModelTypes)
{
    modelBuilder.Entity<T>().Table(T.ToString());
}
foreach(所有模型类型中的模型类型T)
{
modelBuilder.Entity().Table(T.ToString());
}
EF Fluent API中是否有内置的东西可以实现这一点


如果没有,是否有一种方法可以实现如上所述的foreach循环(在类型上迭代?

使用Entity Framework 6这应该满足您的需要:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);    
        modelBuilder.Types().Configure(t =>t.ToTable(t.ClrType.Name));
    }
更新
这里有一个指向msdn文章的链接

在我对msdn文章的回答中添加了一个关于自定义代码优先约定的链接