C# 使用Fluent API对所有EF上下文类使用每种类型的表
目前,如果我想使用Fluent API来规定表每类型继承策略,我必须执行以下操作: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
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文章的回答中添加了一个关于自定义代码优先约定的链接