linq to entites 左外连接
我正在努力 linq 到实体左外连接。我有两个实体(表):
Listings
{
ListingID,
MakeID (nullable)
}
Makes
{
MakeID,
Description
}
我想在 LINQ 中编写如下内容:
select listings.listingID
,listings.makeid
, IsNull(makes.Description, 'NA')
from listings
left outer join makes
on listings.makeid = makes.makeid
I am struggling linq to entities left outer join. I have two entities (tables):
Listings
{
ListingID,
MakeID (nullable)
}
Makes
{
MakeID,
Description
}
I want to write something like this in LINQ:
select listings.listingID
,listings.makeid
, IsNull(makes.Description, 'NA')
from listings
left outer join makes
on listings.makeid = makes.makeid
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
以下是实现左连接的解决方案。就其他资源而言,我真的建议尝试 linq pad: http://www.linqpad.net/ 它是 Linq 的一个很棒的学习工具。
结果变量将包含:
Below is your solution to achieving a left join. In terms of other resources I really recommend trying out linq pad: http://www.linqpad.net/ It is a great learning tool for Linq.
The result variable would contain:
任何告诉您使用 .DefaultIfEmpty() 作为 LINQ to Entities 中外部联接的一部分的人实际上都没有尝试过!根本不起作用 - 至少在 .NET 3.5 SP1 上是这样。
此博主告诉您如何实际上应该这样做。本质上,.NET 默认情况下在 LINQ to Entities 中执行外部联接,因此您应该省略 .DefaultIfEmpty()。对于多个外连接,您必须嵌套查询组以保持其上下文清晰。
Anybody who tells you to use .DefaultIfEmpty() as part of an outer join in LINQ to Entities hasn't actually tried it themselves! Tt simply does not work - at least as at .NET 3.5 SP1.
This blogger tells you how you should actually do it. Essentially, .NET does outer joins in LINQ to Entities by default, so you should leave out the .DefaultIfEmpty(). For multiple outer joins you have to nest the query groups to keep their context clear.
http://oddiandeveloper.blogspot。 com/2008/12/testable-left-outer-join-in-linq-to.html
这应该有帮助,这是我不久前发表的一篇博客文章,应该仍然相关,并且也可能有助于可测试性。
生成实体模型时还要确保外键就位,这将有助于设置依赖项。
http://oddiandeveloper.blogspot.com/2008/12/testable-left-outer-join-in-linq-to.html
This should help, it's a blog post I made a while ago, should still be relevant and might help with testability as well.
Also make sure your foreign keys are in place when you generate your entity model, it'll help setup your dependencies.
不是在开发机器前检查,但也许是这样的?
如果您遇到任何问题,请告诉我,我会检查我的工作电脑。
Not infront of a dev machine to check, but something like this perhaps?
If you have any trouble with it, let me know and i'll check on my work pc.