2016-10-31 81 views
0

我想做一個繼承TPT實體框架爲每個類型建立表。我搜索了該網站,看到所有,但我基於他們的代碼只有建立一個表,這裏所有 是我的課我如何使實體框架TPT繼承每種類型建立一個表

public class Foo 
{ 
    [Key] 
    public int Id { get; set; } 
    public int MainFooProp { get; set; } 
} 

public class FooA : Foo 
{ 
    public int FooAProp { get; set; } 
} 

public class FooB : Foo 
{ 
    public int FoobProp { get; set; } 
} 

和我的背景是

public DbSet<FooA> FooAs { get; set; } 
public DbSet<FooB> FooBs { get; set; } 

,並在模型構建我用

modelBuilder.Entity<Foo>().ToTable("Foos") 
     .Map<FooA>(fa => fa.Requires("FooType").HasValue(1)) 
     .Map<FooB>(fb => fb.Requires("FooType").HasValue(2)); 

我想它來建立一個表中的每個包括富 它應該是這樣的圖 diagram of what i really want

但不幸的是它不僅使一個表,包括所有的屬性。 對不起你們,但我真的絕望,使其工作

+0

不知道你使用的是什麼版本的EF的,但我不認爲這是EF內核的一項功能。 – Kritner

+0

https://weblogs.asp.net/manavi/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-2-table-per-type-tpt – Kritner

回答

0

貌似答案被刪除,所以我的解決方案,我用

modelBuilder.Entity<Foo>().ToTable("Foos") 
modelBuilder.Entity<FooA>().ToTable("Foos") 
modelBuilder.Entity<FooB>().ToTable("Foos")1 
相關問題