linq to sql - 查询查找没有子项的项目

时间:2011-01-13 01:55:43

标签: 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

所以基本上我正在做左连接只是我可以找到没有孩子的对象。

有没有办法做到这一点,并返回一组类型的“传入”项目??

听起来很简单,我尝试了几种不同的方法,但我认为我患有睡眠不足,所以我的大脑没有实现:(

提前谢谢 道格

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,这应该可以解决问题:

Incoming
.Join(
    Outgoing
        .Where(o => o.message != null),
    i => i.id,
    o => o.originalMessageId,
    (i,o) => new {Incoming=i, Outgoing=o}
)