Database design 实体框架代码感兴趣模式的第一个外部联接

Database design 实体框架代码感兴趣模式的第一个外部联接,database-design,entity-framework-4.1,ef-code-first,entity-relationship,Database Design,Entity Framework 4.1,Ef Code First,Entity Relationship,所以我开发了一个模式,它有一个表,充当多个实体的连接表。这是为了标记。我让我的实体使用guid,然后我能够集中标记 在图中的本例中,我通过ObjectTag连接表a’la和ObjectGUID字段在多对多设置中通过TeamMemberGUID关联TeamMember。我可以用同样的方式轻松地关联任何其他GUID键控实体。因此,我有一个中央回购的标签,可以“标签”各种实体。相当圆滑,至少我是这么想的 问题是我似乎找不到一种方法将这些数据与LINQ一起带回实体。我首先使用EF代码,如果可能的话,我

所以我开发了一个模式,它有一个表,充当多个实体的连接表。这是为了标记。我让我的实体使用guid,然后我能够集中标记

在图中的本例中,我通过ObjectTag连接表a’la和ObjectGUID字段在多对多设置中通过TeamMemberGUID关联TeamMember。我可以用同样的方式轻松地关联任何其他GUID键控实体。因此,我有一个中央回购的标签,可以“标签”各种实体。相当圆滑,至少我是这么想的

问题是我似乎找不到一种方法将这些数据与LINQ一起带回实体。我首先使用EF代码,如果可能的话,我想在一个查询中返回它。我得到的最接近于使用丑陋的外部连接语法:

var team = from tm in db.TeamMembers
join ot in db.ObjectTags on tm.TeamMemberGuid equals ot.ObjectGuid into objTags  // outer join to ObjectTag

from ot2 in objTags.DefaultIfEmpty()
join tags in db.Tags on ot2.TagId equals tags.TagId into tmTags  // join via ObjectTag to Tag

select new TeamMemberDTO
{
     TeamMember = tm,
     Tags = tmTags
};
但这给了我一个扁平的集合(4个团队成员共享2个标记可以等于8个结果),其中我要寻找的是一个具有关联标记的标记属性的分层团队成员对象

我已经尝试了正常关系属性,但EF不想将多个实体映射到一个连接表,因此这是错误的。我也尝试过一个小组,但还没有取得进展

这是LINQ去EF的机会吗?我需要考虑一个观点还是什么?

真的希望EF专业人士能在这方面帮助我。我觉得我错过了什么或者采取了错误的方法