簡體   English   中英

LINQ查詢未按預期查詢

[英]LINQ Query Not Querying as Expected

我在徘徊,如果有人可以向我解釋為什么這個查詢不像SQL Left連接那樣起作用,我似乎無法弄清楚為什么。 我一直在做些狩獵,但似乎無法解決。 據我所知。
即在一個有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 };

謝謝

通過使用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()方法,因為您不允許查詢以空值聯接。

有關示例,請參見類似的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM