2013-10-23 169 views
0

我們在n層設置(Silverlight/WCF)中使用實體框架5代碼優先。實體框架 - 沒有實體引用的模型FK關聯?

爲了簡化我們的實體圖的這種情況下,我們不使用導航屬性的關聯不依賴於根實體的PK,只映射FK的性能,例如:

Deal 
- PaymentScheduleID (FK property) 
- PaymentSchedule (dependent on Deal so we need to use navigation property) 
- BusinessUnitID (FK property, Deal is optionally dependent on BusinessUnit) 

在這個示例中,PaymentSchedule是對僅由父交易定義的實體的引用,因此我們使用導航屬性和FK屬性以及使用Fluent API的關聯映射。

如果我們爲新付款計劃添加交易,EF將根據我們的關聯映射制定出它需要在插入Deal之前插入PaymentSchedule,這正是我們想要的。

但是,如果我還需要添加新的BusinessUnit,EF可能會將插入的順序錯誤,因爲它不知道BusinessUnitID是FK到BusinessUnit,並且從數據庫中收到錯誤。

有沒有什麼辦法可以告訴EF,數據庫中存在FK關聯而不需要模型上的導航屬性?我看不到使用Fluent API的任何方式。

回答

0

而不是完全跳過Deal和BusinessUnit之間的導航屬性,實際上可能會使用Deal到BusinessUnit的單向導航,但BusinessUnit不會收集對Deals的引用。由於FK是可選的,因此Deal.BusinessUnit屬性將爲空。