我有位舊的數據庫的工作,但這裏的基本思想是:LINQ的2 SQL,不能創建協會
Item
Id INT PK NOT NULL
Description VARCHAR(50) NOT NULL
TranslationId INT NULLABLE
Translation
Id INT PK NOT NULL
Language VARCHAR(10) PK NOT NULL
Translation VARCHAR(50) NOT NULL
基本上每一個項目可能有很多翻譯,似乎很簡單。這些表沒有外鍵,因此我正在手動嘗試在DBML中創建關聯,但由於翻譯表中翻譯ID與PK之間的空值不同,因此它失敗。
有反正我能得到這個協會的工作,如:
item.Translations
錯誤消息: 無法創建一個協會「Item_Translation」。屬性沒有匹配的類型:「TranslationId」,「Id」。
我知道它與TranslateId可爲空,因爲另一個與Translations關聯的表可以正常工作,但其TranslationId列不爲NULL。從翻譯
的樣本數據:
Id Language Translation
1 en-us some text
1 en-gb some text
2 en-us some text
2 en-gb some text
對不起,我在原來的崗位上做出了一個錯誤,這兩個ID和語言翻譯表是PK。 此外,多個表格參考此表格進行翻譯。 – 2010-07-08 14:29:30
由於NULL的差異,關聯失敗仍然沒有意義。外鍵允許爲空,這只是表示該項目沒有翻譯。你能發佈你正在得到的確切的錯誤信息嗎? – 2010-07-08 14:37:50
我不得不提一提,獨立的值'Translation.Id'並不是完整的主鍵,因爲它本身就足夠了。數據庫中的外鍵將無法直接鏈接到Id,您也必須包含該語言。我不確定這是否與LINQ 2 SQL問題有關。確切的錯誤信息會有很大的幫助。 – 2010-07-08 14:39:11