LINQToSQL を使用して C# プロジェクトに取り組んでいますが、現在、次のクエリに問題があります。
var groupByQuery = (from c in db.Customers
join o in db.Orders on c.CustomerID equals o.CustomerID into lf1
from or in lf1.DefaultIfEmpty()
group c by c.CustomerID into g
select new
{
CustomerID = g.Key,
Count = g.Count()
}
).OrderBy(x => x.Count);
ご覧のとおり、LEFT OUTER JOIN
と でグループ化していCustomerID
ますが、これまでのところすべてうまくいっています。しかし、結果を見ると、Customers
を持たないOrder
のフィールドに「1」があることがわかりCount
ます。
何故ですか?これらのCount
場合、フィールドには「0」が含まれているはずです。何が間違っていますか?
ここでこの質問を見つけました:
linq-count-query-returns-a-1-instead-of-a-0
linq-to-sql-joining-query-returning-1-instead-of-0
しかし、どれも私には役に立ちませんでした。誰かが助けてくれることを願っています。よろしくお願いします。