我想知道是否可以在EF4模型中将数据库中的m:n关系映射两次。
考虑这个数据库模型:
http://andarki.dk/stackoverflow/db.png
这是公司和用户之间的标准m:n关系。 如果在模型生成期间忽略了字段works_at.is_locked_out,它会在EF中生成一个很好的*到*关系:
http://andarki.dk/stackoverflow/pretty.png
如果我启用works_at.is_locked_out,它看起来更像原始数据库模式:
http://andarki.dk/stackoverflow/detailed.png
是否有可能同时拥有这两种关系? 对于某些查询,works_at.is_locked_out不是必需的,并且具有直接链接使得在这些情况下查询更容易。 当我添加两个关系时,我得到错误
Problem in mapping fragments starting at lines 23, 30:Two entities with possibly different keys are mapped to the same row. Ensure these two mapping fragments map both ends of the AssociationSet to the corresponding columns.
TestModel.edml
这是以任何可能的方式进行的,还是我尝试吃蛋糕并吃它的情况呢?
答案 0 :(得分:0)
如果您看到错误,则无法同时显示两者。 This article by Julie Lerman会解释很多,如果不是全部的话。而且我认为你应该选择替代方案2,因为正如你所说的那样并不总是必要,但有时(或在不久的将来)它是。那个领域不存在没有任何目的我想......;)祝你好运!