我们可以在linq中使用if语句来决定是否加入?

时间:2014-08-05 11:21:27

标签: c# sql linq linq-to-sql linq-to-entities

我想在Linq的某些条件中包含一个表。

我正在寻找这样的事情:

var query = from x in context.Messages 
if(x.senderID != 0)
{
    join et in context.ETs on x.senderID equals et.ID
}
where x.Getter == SSN
select new { x.id, x.message}

这种方法是否可行,还是我必须编写两个不同的linq查询,然后我会将它们组合起来?

1 个答案:

答案 0 :(得分:0)

var query = from a in context.Messages
    join b in context.ETs
    on a.senderID equals b.ID
    into temp
    from b in temp.DefaultIfEmpty()
    where a.Getter == SSN
    select new { a.id, a.message}