[英]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.