3

我正在使用 TPH(按层次结构表)技术来映射一组实体。

数据库架构:UserGroupLabelSpreads 表具有“UserId”、“GroupId”和“LabelId”可为空的字段以及一些额外的公共字段。

DAL 对象: - UserGroupLabelSpread 抽象类。- 带有仅具有非空 UserId 的鉴别器的 UserSpread。- GroupSpread 带有一个只有非空 GroupId 的鉴别器。- 带有仅具有非空 LabelId 的鉴别器的 LabelSpread。

我已经设法让这个东西工作了,但是当我尝试将 UserSpread 实体连接到现有的“用户”实体时,我收到以下错误:错误 1 ​​错误 3034:从第 487 行开始映射片段时出现问题, 554:具有不同键的两个实体映射到同一行。确保这两个映射片段不会将具有重叠键的两组实体映射到同一组行。

我四处挖掘以了解问题在于我将 UserId 列映射了两次:一次用于鉴别器条件,第二次用于关联。

我的假设是否正确?-我可以让这东西工作吗?

谢谢,尼尔。

4

1 回答 1

2

有一个更新版本的EDM Generator应该能够帮助您。您可以使用它来生成、验证等。抱歉,发错链接了。这是 v2 的一个。我相信我遇到过这个问题。如果我没记错的话,那是因为我把外键映射错了。然而,当时我使用的是 EF4 的 beta 1,并且由于代理,一些消息是错误的。检查你的外键。Blog.Id ---> Blog_id 是我的问题。我有 Blog.Id --> Blog.Id 然后是 BlogEntry.Id ----> Blog.Blog_Id 这当然不起作用,但是在映射键时设计者有点无情。

于 2009-06-07T13:47:38.053 回答