我按照建议写了我的代码,
public class A
{
public int id {get;set;}
public string Astring {get;set;}
}
public class B : A
{
public string Bstring {get;set;}
}
builder.Entity<A>().MapHierarchy( u=> new { ... }).ToTable("A");
builder.Entity<B>().MapHierarchy( u=> new { ... }).ToTable("B");
... =我提到了所有的属性,而且两者都是。
我还有DbSet<A> A {get;set;}
和DbSet<B> B {get;set;}
和我使用模型构建器
ObjectSet
属性
builder.Entity<A>
builder.Entity<B>
这导致表A使用鉴别器列和Id,Astring,Bstring创建。这是默认的TPH映射,不确定为什么会发生这种情况。 感谢
答案 0 :(得分:0)
http://blog.cincura.net/231783-ultimate-efv4-ctp4-code-first-full-mapping-example-using-firebird/
以上示例中的作者,翻译部分具有正确的TPT解决方案, 由于某种原因
上的例子http://romiller.com/2010/09/29/ef-ctp4-tips-tricks-code-first-inheritance-mapping/
不能为我工作