EF4非常适合提取关联数据,但如果关联不明确,您会怎么做?一个例子说明了我的情况:
MasterTable有一个child1Id和child2Id列。
Child1和Child2有两个表,对应的主键为child1Id和child2Id。有Master,Child1和Child2实体。
Master和Child1 / Child2表或实体之间没有外键或实体框架关联。
当我拥有的是主人中匹配的子ID时,如何从两个子表中选择主记录和相应的子记录?
我不能改造关系或关联。
理查德
答案 0 :(得分:0)
您必须通过linq到实体手动选择它们。以下是两个表之间的左连接:
var query = from m in context.Masters
where m.Id == 1
join c in context.Childs on m.Child.Id equals c.Id into leftJoin
from x in leftJoin.DefaultIfEmpty()
select new
{
Id = x.Id,
Name = x.Name,
Child = x.Childs
};
顺便说一下。如果您的实体具有包含来自其他实体的PK值的属性,则可以在EF designer中创建关系。在这种情况下,您将能够使用导航属性。