LINQ to Entities,如何返回父表中的所有记录?

发布于 2024-07-14 00:22:43 字数 538 浏览 9 评论 0原文

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

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

图片链接(死链接)

这是我想要使用 Linq to Entities 或 Linq to SQL 的确切输出(下图):

图像链接(死链接)

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

我希望显示空值,就像使用左外连接时一样。

谢谢你的帮助。

I am unable to select all the records from the parent table using Linq to Entities.

This is a simple DB design (image below):

Image Link (Dead Link)

This is the exact output I want using Linq to Entities or Linq to SQL (image below):

Image Link (Dead Link)

When I use Linq to Entities or Linq To Sql, I can only get the records from the child table that has a foreign key relation. I am not able to get the null values as shown above.

I want to have the null values show just like when you use left outer join.

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失与倦" 2024-07-21 00:22:43
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};
from entity in MyContext.EntityType.Include("ChildEntitiesNavigationPropertyName")
select entity;

This returns all instances of EntityType, plus ChildEntitiesNavigationPropertyName when/if it exists. For tabular form use an anonymous type:

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

For a 1..* property:

from entity in MyContext.EntityType.Include("ChildEntitiesNavigationPropertyName")
from child in entity.ChildEntitiesNavigationPropertyName.DefaultIfEmpty()
select new {ParentProperty = entity.ParentProperty, 
            ChildProperty  = child.ChildProperty};
梦里泪两行 2024-07-21 00:22:43

我很确定您可以从员工中进行选择,然后在 LINQ 中进行左连接,如下所示(我这台机器上没有 VS):

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

您可能想选择您只想选择的列。 希望它能给您带来您想要的结果。

I'm pretty sure you can select from employees and then do a left join in LINQ, something like this (I don't have VS on this machine):

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

You may want to select the columns you just want. Hope it gives you the results you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文