2012-03-19 60 views
1

Ì目前正在開發ASP NET MVC項目。我們使用實體框架並遵循數據庫優先的方法。數據庫已經存在。 使用約定創建了數據庫,即使它是結點表,每個表都具有指定的單個主鍵。實體框架:具有自己主鍵的聯結表

實施例:

  • 表用戶: 用戶ID(PK); 用戶名

  • 表UserRole: UserRoleId(PK); UserId(FK); 角色ID(FK)

  • 表作用: 角色ID(PK); ROLENAME

至於說,該數據庫已存在,這一慣例在分析討論。 當我想在Visual Studio中創建一個實體數據模型時,我也有三個實體。但只有兩個實體:用戶和角色纔有意義。 UserRole實體沒有意義。

是否有任何可能影響實體框架映射表的方式,所以我可以擺脫這些關係(無用的)實體?

回答

0

有沒有我可以影響該實體框架 映射我的表的方式的可能性,這樣我就可以擺脫那些關係(沒用) 實體?

不,你不能強迫EF設計師這樣做。當使用自動工具時,您總是會將結點表映射爲單獨的實體,因爲它不再被視爲結點表 - 它具有特殊的數據(一個單獨的鍵),它爲該實體提供了新的可能性(例如兩個實體之間的關係可以存在多次,這對於正常結點表是不可能的)。

避免這種情況的唯一方法是放棄工具支持,並使用代碼映射或手動編寫EDMX文件,並且不要告知EF有關該附加密鑰。相反,讓EF相信只有那些兩個FK形成了複合PK,正如預期的聯結表一樣。顯然,如果你的數據庫需要單獨的PK允許的特殊可能性,你不能這樣做。

+0

這不是我希望的答案,但無論如何要感謝。我想我會試着討論這個無可辯駁的慣例;) – ckonig 2012-03-19 13:11:28