linq to sql-查询以查找没有子项的项
我正在尝试编写一个不会引发一百万子查询的linq查询 我想在sql中做的是类似这样的事情linq to sql-查询以查找没有子项的项,linq,linq-to-sql,Linq,Linq To Sql,我正在尝试编写一个不会引发一百万子查询的linq查询 我想在sql中做的是类似这样的事情 select incoming.id, incoming.message, outgoing.message from incoming left join outgoing on incoming.id = outgoing.originalMessageId where outgoing.message is not null 所以基本上我在做左连接,我可以找到没有子对象的对象 有并没有办法做到这一点
select incoming.id, incoming.message, outgoing.message
from incoming
left join outgoing on incoming.id = outgoing.originalMessageId
where outgoing.message is not null
所以基本上我在做左连接,我可以找到没有子对象的对象
有并没有办法做到这一点,并返回一组键入的“传入”项
听起来很简单,我尝试过几种不同的方法,但我认为我正遭受睡眠不足的折磨,所以我的大脑无法实现这一点:(
提前谢谢
道格如果我正确理解了你的问题,这应该可以做到:
Incoming
.Join(
Outgoing
.Where(o => o.message != null),
i => i.id,
o => o.originalMessageId,
(i,o) => new {Incoming=i, Outgoing=o}
)
如果我正确理解了你的问题,这应该可以做到:
Incoming
.Join(
Outgoing
.Where(o => o.message != null),
i => i.id,
o => o.originalMessageId,
(i,o) => new {Incoming=i, Outgoing=o}
)
我很困惑。你确定你的SQL中的列名正确吗?我想应该是select incoming.id…not id.incomingI讨厌使用EF进行外部联接!是的,我的SQL错误-抱歉,我已经修复了它。我还想知道这是一个左联接。由于对右侧表上的属性进行空检查,因此不会有未匹配的如果我的思维帽被拧到了右边,这不是一个内部连接吗?我很困惑。你确定你的SQL中的列名正确吗?我想它应该是select incoming.id…not id.incoming我讨厌用EF做外部连接!是的,我的SQL错了-抱歉,我已经修复了它。我还想知道怎么做这是一个左连接。由于对右侧表上的属性进行了null检查,左侧将不会有不匹配的行。如果我的思维帽拧在右侧,这不是一个内部连接吗?