2014-04-09 39 views
0

我正在使用VS 2013 Premium與EF 6並希望使用模型優先與表每個層次結構。我一直在尋找2+小時解決方案無濟於事。EF6模型首先和TPH繼承映射策略

在模型設計器中,I 只有有TPT作爲選擇。似乎TPH在VS 2010的「Entity Designer數據庫生成動力包」中,但我讀到這在2012年不起作用,因此我認爲它不適用於2013年。我看到Code First TPH是默認的繼承策略,所以將使用TPH的Code First項目轉換爲Model First的答案是?模型第一和TPH甚至可以完成?我有什麼選擇?

回答

0

我總是先做模型。

這裏是讓你TPH從數據庫生成實體後(簡單)手動方式: http://msdn.microsoft.com/en-us/data/jj618292

+0

嘿Saša- THX您的快速回答,您所做的燈泡下去。我沒有意識到,當您將模型部署到另一個數據庫時,Db優先策略很容易成爲模型優先策略。所以,是的,那篇文章爲我做了,我昨天晚上通過了它。有一件事我不明白的是,對於特定於派生實體的字段,需要Nullable = false,爲什麼?所以它是* derived *類型的必需字段,但對於* base *類型是可選的?我認爲這是爲後者指定的,但它必須是相反的... Thx再次, -Pete – user3517126

+0

特定於TPH中的派生類型的特性在數據庫中可爲空,但不必爲空時纔可爲空映射到對象。例如,如果註冊日期不是必需的信息,則可以保留'nullable = true'。 –