2009-06-07 117 views
3

我正在使用TPH(表層次結構)技術來映射一組實體。實體框架 - 來自衍生實體的關聯

DB架構: UserGroupLabelSpreads表具有帶有一些額外公共字段的「UserId」,「GroupId」和「LabelId」可爲空的字段。

DAL對象: - UserGroupLabelSpread抽象類。 - 具有唯一非空UserId的鑑別器的UserSpread。 - 帶唯一非空GroupId的鑑別器的GroupSpread。 - 具有僅具有非空標籤ID的鑑別符的LabelSpread。

我設法讓這個東西工作,但是當我嘗試將UserSpread實體連接到現有的「用戶」實體時,出現以下錯誤: 錯誤1錯誤3034:映射片段中的問題從第487,554行開始:將具有不同關鍵字的兩個實體映射到同一行。確保這兩個映射片段不會將具有重疊鍵的兩組實體映射到同一組行。

我已經深入瞭解問題在於我將UserId列映射了兩次:一次是鑑別器條件,另一次是關聯。

我對我的假設是否正確?我可以讓這個東西起作用嗎?

謝謝, Nir。

+1

對不起,正確的錯誤是: 錯誤錯誤3007:問題在映射片段起始於線242,272:非主鍵列(S)[用戶ID]被映射在兩個片段不同的概念側屬性 - 數據不一致是可能的,因爲相應的概念側屬性可以獨立修改。 – nirpi 2009-06-07 15:30:45

回答

2

有一個EDM Generator的更新版本應該能夠幫助你。您可以使用它來生成,驗證和更多。對不起,得到了錯誤的鏈接。 Here is the one to v2。我相信我有這個問題。如果我沒有弄錯,那是因爲我把錯誤的鍵映射到了錯誤的地方。然而,我當時正在使用EF4的測試版1,並且由於代理服務器,部分消息是錯誤的。檢查你的鑰匙。 Blog.Id ---> Blog_id是我的問題。我有Blog.Id - > Blog.Id,然後是BlogEntry.Id ----> Blog.Blog_Id這當然不起作用,但設計師在涉及映射密鑰時有點無情。