我想在現有的SQL Server基礎結構上設置一個EDM,並遇到了一個問題。實體框架不能解決與複合主鍵的PK-FK關係?
EDM將而不是解決複合外鍵的PK-FK關係。
我的數據庫表結構看起來是這樣的(名稱更改爲保護無辜者):
- 我有一個包含名爲PerID(PK)
- 我有一個包含一個OFFICE表中的INT列一個人的表一個名爲OffID(PK)的INT列
- 我使用名爲OFFICEPONSONS的表將這些表綁在一起,從而在人員和辦公室之間創建多對多關係。該表有兩個INT列,PerID和OffID,它們一起構成一個複合主鍵。
- 我有一個名爲OFFICELOCATION的表,它包含兩個INT列,LocID和OffID。這兩列包含一個複合主鍵。此外,OffID也是OFFICE表的FK。
- 最後,我有一個名爲OFFICEPERSONSLOCATION的表。該表有三個INT列:PerID,OffID和LocID。所有三列包含一個複合主鍵。 LocID和OffID提供與OFFICELOCATION的FK關係,並且OffID和PerID向OFFICERSONS提供FK關係。
到目前爲止我和誰?希望我還沒有失去你。當所有事情都說完之後,我的結構看起來像這樣:
這個結構在SQL Server中很好。在電火花?沒那麼多。它不會允許我構建OFFICEPERSONSLOCATION和OFFICERSERSONS之間的關係。我得到以下錯誤:
Error 6037: Foreign key constraint 'FK_OFFICEPERSONSLOCATION_OFFICEPERSONS' has been omitted from the storage model. Column 'OffID' of table 'Model.Store.OFFICEPERSONSLOCATION' is a foreign key participating in multiple relationships. A one-to-one Entity Model will not validate since data inconsistency is possible.
咦?數據不一致?!?怎麼樣?
如何讓我的實體框架認識到這一點?
我意識到實體框架通常不代表交叉參考表,而是在沒有交叉參考表的情況下使用多對多關係鏈接兩個表。這是否與我試圖將交叉引用表與另一個交叉引用錶鏈接起來? – 2013-02-27 20:53:37
我被告知我的EF版本可能與它有關。不知道我正在運行什麼版本,但我認爲它早於EF4。我正在運行VS2010。 – 2013-02-27 21:37:50