LINQ to Entities,如何从Parent表返回所有记录?

时间:2009-02-11 09:54:02

标签: linq-to-entities left-join

我无法使用Linq to Entities从父表中选择所有记录。

这是一个简单的数据库设计(如下图所示):

Image Link (死链接)

这是我想要使用Linq to Entities或Linq to SQL的完全输出(如下图所示):

Image Link (死链接)

当我使用Linq to Entities或Linq To Sql时,我只能从子表中获取具有外键关系的记录。我无法获得如上所示的空值。

我希望显示空值,就像使用left outer join时一样。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

from entity in MyContext.EntityType.Include("ChildEntitiesNavigationPropertyName")
select entity;

当/如果存在,则返回EntityType的所有实例以及ChildEntitiesNavigationPropertyName。对于表格形式,请使用匿名类型:

from entity in MyContext.EntityType.Include("ChildEntitiesNavigationPropertyName")
select new {ParentProperty = entity.ParentProperty, 
            ChildProperty  = entity.ChildEntitiesNavigationPropertyName.ChildProperty};

对于1 .. *属性:

from entity in MyContext.EntityType.Include("ChildEntitiesNavigationPropertyName")
from child in entity.ChildEntitiesNavigationPropertyName.DefaultIfEmpty()
select new {ParentProperty = entity.ParentProperty, 
            ChildProperty  = child.ChildProperty};

答案 1 :(得分:0)

我很确定你可以从员工中选择然后在LINQ中进行左联接,就像这样(我在这台机器上没有VS):

var results = from e in dbContext.Employees join s in dbContext.Sales on e.EmployeeID equals s.EmployeeID select new { e, s };

您可能想要选择您想要的列。希望它能为您提供所需的结果。