LINQ Query未按预期查询

本文关键字:查询 Query LINQ | 更新日期: 2023-09-27 18:12:19

我在徘徊,如果有人能向我解释为什么这个查询不像SQL左连接,我似乎不能找出原因。我一直在做一些狩猎,但我似乎无法解决这个问题。据我所知,应该是这样。
例如,在一个有5个活动客户的表中,它将只返回其中的2个客户,而不是全部5个;2与值和3与null或0?

var results = from c in DataContext.Customers
              where c.Active
              join j1 in
              (from i in DataContext.Invoice where i.State== "Pending" &&
               i.InvoiceDate.Date >= From.Date && i.InvoiceDate.Date <= To.Date 
               group i by i.Customer into x 
                      select new { x.Key, Total = x.Count() }) on a equals j1.Key
                      select new { c, j1.Total };

谢谢

LINQ Query未按预期查询

通过使用DefaultIfEmpty()方法可以做到这一点。试试下面的代码我已经执行了你的问题解决方案如果成功了就回复我

var results = from c in DataContext.Customers
                  where c.Active
                  join j1 in
                  (from i in DataContext.Invoice where i.State== "Pending" &&
                   i.InvoiceDate.Date >= From.Date && i.InvoiceDate.Date <= To.Date 
                   group i by i.Customer into x 
                          select new { x.Key, Total = x.Count() }) on a equals j1.Key into j3
                                from k in j3.DefaultIfEmpty()
                          select new { c, k.Total };

我会在您的j1子查询上尝试DefaultIfEmpty()方法,因为您不允许查询连接null值