我无法使用Linq to Entities从父表中选择所有记录。
这是一个简单的数据库设计(如下图所示):
Image Link (死链接)
这是我想要使用Linq to Entities或Linq to SQL的完全输出(如下图所示):
Image Link (死链接)
当我使用Linq to Entities或Linq To Sql时,我只能从子表中获取具有外键关系的记录。我无法获得如上所示的空值。
我希望显示空值,就像使用left outer join
时一样。
感谢您的帮助。
答案 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 };
您可能想要选择您想要的列。希望它能为您提供所需的结果。