实体框架可以将两个关联映射到单个导航中吗?

时间:2009-12-01 03:20:42

标签: entity-framework

我有两个简单的表格,如此处所述......

Table = Person
   PersonID  (int, PrimaryKey)
   FirstName (char)
   LastName  (char)

Table = Related
   RelatedID    (int, PrimaryKey)
   Person1      (int, ForeignKey for Person.PersonID)
   Person2      (int, ForeignKey for Person.PersonID)
   Relationship (int)

为Person生成的实体有两个导航集合。一个用于Related.Person1,另一个用于Related.Person2。这是一种痛苦,因为这意味着我有两个集合要进行调查,以查找与该人相关的所有关系。

我需要只有一个包含这两个集合的导航集合。是否有可能将此作为实体frameowrk的一部分生成?唯一的选择是自己生成第三个集合,其中包含一组实体,感觉就不需要了。

1 个答案:

答案 0 :(得分:2)

正如克雷格所说,你所要求的并不是EF的核心,但......友谊型关系是那些令人讨厌的模型之一,所以我看到你想要做的事情。

通过将关联集映射到SSDL中的视图(DefiningQuery),可以实现此方法。

视图支持的关联/关系将是只读的,因此您可能希望保留其他两个关系,以允许您从正确的集合中添加/删除,或者当您要搜索时只有一个方向。

查看此帖子which shows the techniques,了解更多信息。

希望这有帮助

亚历