2014-03-30 42 views
0

我有三個類,使用TPH(每hiracy表):EF不創建我的表

abstract class Cat { int Id; string Name; } 
class ItemCat: Cat { } 
class PhotoCat: Cat{ } 

class Db:DbContext 
    { 
    Db() 
     { 
     Database.SetInitializer(new MigrateDatabaseToLatestVersion<Db,Migrations.Configuration>()); 
     } 
     DbSet<ItemCat> ItemCats; 
     DbSet<PhotoCat> PhotoCats; 
    } 

,也有種子()方法來種子ItemCats

update-database運行良好和種子表。

但EF不創建我的ItemCat!並保證它創造貓! &種子吧。我沒有DbContext中的貓。

我也添加[Table(「ItemCats」)] ItemCat類,ItemCats表出現,但只有ID列在它!

我認爲這是因爲ItemCat & PhotoCat類是空的&只是從Cat類繼承。 這對我來說很奇怪。

+0

您是否測試過將字段添加到ItemCat或PhotoCat類的理論會導致分離的表? –

+0

是的。不起作用。 IDE中是否有任何窗口可查看接收方法的執行順序? – Mohammadreza

+0

你的意思是遞歸?另外,你可以發佈你的配置嗎? –

回答

0

將您的配置更改爲表每種類型應該給你期望的表。有關每種類型表生成表格的更多細節位於here