2012-02-02 295 views
0

在數據庫中,我有兩個表UserOrganization以及橋接表Users_Orgs實體框架 - 模型首先,多對多映射

Users_Orgs表具有由兩列userIdorganizationId組成的組合鍵。當我使用設計器創建關聯時,它會爲參照約束創建兩個主體 - UsersUsers_Orgs。問題在於Users_Orgs約束 - 它有一個包含organizationIduserId的密鑰。由於organizationId不在User表中,因此無法映射,因此無法編譯。

Users_Orgs table Users_Orgs Constraints

在單擊「刪除」按鈕關閉對話框剛剛關閉,organizationId只是映射到用戶表的主鍵(這不是用戶id)

你怎麼可以做很多到現有數據庫上的組合鍵的許多映射?

回答

1

爲什麼你在你的模型中搭橋?如果此表中沒有其他屬性,則不需要。否則,您應該模擬UsersOrganizations之間的關係,並正確配置多對多。 EF將自動爲此關係創建橋接表和映射。

解決您的問題:橋接表是依賴的,而不是主要的。切換約束條件中的角色並將User.UserId PK映射到Users_Orgs.UserId FK。

+0

橋接表不是我的創建,它來自現有的數據庫。我無法更改數據庫,因爲它是CMS(Liferay)的一部分,可能會因修補程序和更新而更改 – SamWM 2012-02-06 14:54:28