2012-09-19 33 views
1

嗨,我有一個數據庫首先定義的EF5模型。 我的用戶表有一個主鍵guid UserGUID 和另一個關鍵字段UserID帶有自動遞增整數。 我創建了一個名爲UserCustomField的表,它具有 UserID,並且我已在用戶表中爲用戶ID創建了一個外鍵約束。EF5如何添加缺少的關係

當我從數據庫更新模型時,所有到主鍵的外鍵關係都會生成,但沒有鍵關鍵字。忽略關於通過我所有的表使用GUID的潛在問題..... A /不應該EF添加這種關係? B /我如何手動添加它?

乾杯 添

回答

2

答:不可以。 B:你不能。

EF能夠當它們指向主鍵,只使用關係,使要麼改變User表使用UserID作爲主鍵和刪除UserGuid或更改UserCustomField表中User表指向UserIDUserGuid

它不工作的原因是您的數據庫要求UserIDUser表中被標記爲唯一(這意味着唯一約束)並且EF不支持唯一性約束。

+0

是不是我可以添加我自己的屬性至少用戶對象,所以我可以做foreach的等價物(UserCustomField項myUser.UserCustomerFields()) – Tim

+0

如果您不修改您的模型來創建在EDMX中你必須隱藏你自己的Linq查詢,手動連接後面的新屬性。這將使您的用戶實體依賴於EF的上下文實例。 –

+0

對不起拉迪斯拉夫,我不能鍛鍊你在評論中表達的內容。你是說這是不可取的?我看不到在我的用戶對象中添加方法或屬性的明顯位置,因爲EF似乎填充了不瞭解上下文的類。 – Tim