我試圖創建一個1:使用實體框架(.NET 4.0)M關係,並正在以下錯誤:定義1到實體框架多對多關係
App_Code.Model.msl(36,6) : error 3007: Problem in mapping fragments
starting at lines 6, 36:Column(s) [ProductId] are being mapped in
both fragments to different conceptual side properties.
我有什麼是產品表和功能表。這個想法是產品有很多特點。每個產品都有一個ProductId,並且這些Features具有一個ProductId外鍵。
現在的問題是外鍵在sql server中不存在,我不希望它。如果確實如此,那麼它全部自動地很好地工作。
在EDMX設計器中,我創建了一個從產品到特徵實體的關聯,然後將ProductFeature關聯的映射細節編輯爲基於Features表,我認爲它會使其工作。
任何想法?非常感謝。
你爲什麼不想要的FK?忘記EF一秒鐘,這將如何從SQL Server的角度工作?您需要功能上的FK來了解它屬於哪個「唯一」產品記錄。如果你說你不想要這個FK,這聽起來像是多對多,在這種情況下,你需要一個聯結表(即ProductFeatures - 就像下面的答案一樣)。 – RPM1984 2010-10-11 23:36:07
是否有任何特別的原因,您沒有使用外鍵?我明白這只是一個簡單的例子,但從你的描述來看,它應該是一個FK。 – 2010-10-11 23:40:56
@ RPM1984 - 我不想對數據庫進行更改,因爲這是針對現有應用程序/數據庫的,而不是綠地的情況。 – Chris 2010-10-11 23:51:05