5

我有一个使用每个层次结构表的实体框架模型。基类是抽象的,有两个派生类。

我想在这两个派生类和另一个类之间创建关联。这些是多对多关系,因此请通过连接表。

添加第一个关联是可以的,但是当我添加第二个时,我得到了这个错误:

错误 3034:从第 1074、1082 行开始映射片段时出现问题:具有可能不同键的两个实体映射到同一行。确保这两个映射片段将 AssociationSet 的两端映射到相应的列。

下面是模型相关部分的图像(LabelImages 和 PresetImages 关联是造成麻烦的):

替代文字

4

1 回答 1

1

有点晚了,但无论如何:

如果您与底层数据库相关,这实际上是不可能的。实体框架将为图像表和产品表之间的关联创建一个连接表,而您实际上需要两个不同的连接表。

我建议对数据库中的继承层次结构使用不同的选项。或者放置图像和产品之间的关系,而不是子类型。您可以在产品类上添加方法以过滤特定类型,一种用于预设图像,一种用于标签图像。或者在您的上下文类中添加一个方法,以使用OfType检索产品的特定类型的图像。

于 2011-07-18T08:20:21.537 回答