使用linq与实体进行左连接的正确方法?

时间:2009-10-06 15:00:20

标签: linq-to-entities

由于不支持DefaultIfEmpty(),执行左连接的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

很难说如何解决你的问题,因为你没有说出它是什么,但通常是:

var q = from i in Context.Invoices
        select new 
        {
            Number = i.Number,
            ItemNumbers = from il in i.Lines
                          select il.Number
        }

LINQ to Entities将合并空值,因此如果没有发票行项目,您将获得一个空集合。

现在生成图表,而不是表格结果集。我的猜测是你想要的,因为当你在LINQ to Entities中工作时,你通常想要使用对象,而不是表格的SQL结果。但就像你说的那样,如果不知道你想要解决的确切问题,就很难具体化。

答案 1 :(得分:0)

最后,我使用the let way .FirstOrDefault()

from myothertable
where....
let var = (query).FirstOrDefault()
select new {otherfield, var.field1, var.field2}