我使用的EntityFramework,並在我的EDMX文件我制訂兩個表:如何獲取父實體密鑰?
客戶 柱: 編號PK
和訂單 列: 編號PK 客戶編號FK其相關
。
當我拿Order對象有IS Customer屬性但我看不到CustomerId屬性。 我曾經使用L2SQL,我期望看到CustomerId但EF以某種方式隱藏它。
我使用的EntityFramework,並在我的EDMX文件我制訂兩個表:如何獲取父實體密鑰?
客戶 柱: 編號PK
和訂單 列: 編號PK 客戶編號FK其相關
。
當我拿Order對象有IS Customer屬性但我看不到CustomerId屬性。 我曾經使用L2SQL,我期望看到CustomerId但EF以某種方式隱藏它。
EF edmx設計器中的添加關聯對話框允許您指定(通過複選框)是否要爲關聯創建「外鍵」(和/或導航屬性)。你確定它被檢查了嗎?
我也只是寫這個;)現在我只粘貼鏈接,我仍然在我的剪貼板中的評論在這裏:http:// blogs.msdn.com/b/msdnforum/archive/2010/05/07/foreign-key-association-in-entity-framework-4.aspx VS2010中有一個嚮導截圖。值得注意的是,這是EF 4選項,不適用EF 1(.NET 3.5SP1)。 – Slauma 2011-04-13 14:45:42
我無法檢查它:此功能在目標框架中不可用...(3.5) – jlp 2011-04-13 14:48:33
@jpl:的確,它在EF 1(.NET 3.5)中不存在。您必須先加載客戶才能獲得外鍵。如果可以,也可以升級到.NET 4。 – Slauma 2011-04-13 14:50:27
在Customer屬性中,應該有一個CustomerId屬性。
所以儘量..
myOrderObject.Customer.CustomerId
這可能會強制EF加載客戶對象(如果您啓用了延遲加載)。如果你只想要ID,這可能是一個壞主意...... – MartinStettner 2011-04-13 14:31:11
我不能使用myOrderObject.Customer.CustomerId,因爲myOrderObject.Customer可以爲null(是!) – jlp 2011-04-13 14:38:11
然後添加一個空檢查。如果它不爲空,請使用該對象。 – Travyguy9 2011-04-13 14:39:48
究竟是如何在順序表中的id列命名?通常EF-Designer應該爲數據庫表中的每一列創建一個屬性。查看「映射詳細信息」頁面(您可以在EF設計器的上下文菜單中打開該頁面)以查看該列是否映射(以及屬性)。
我編輯我的問題 - 列肯定是映射 – jlp 2011-04-13 14:39:54
請注意,有和沒有外鍵屬性的關係處理方式不同:http://stackoverflow.com/questions/5281974/code-first-independent-associations-vs-foreign-key-associations/5282275#5282275 – 2011-04-13 17:41:39