LINQ クエリで 1 つのテーブルに対して複数のカウントを行うのに問題があります。私はNHibernate、LINQ to NHibernate、およびC#を使用しています。
query はデータが入力されたリストです。FullRef というブール値を持つテーブルがあります。LINQ クエリを実行して、各 TrackId で FullRef = false および FullRef = true の発生回数を取得したいと考えています。TrackId は、track.Source == "UserRef" を取得するたびに新しい行を取得します。
次のクエリでは、(FullRefTrueCount から) FullRef = true の正しいカウントを取得しますが、FullRefFalseCount で未知の間違った数を返します。
var query2 = from track in query
where track.Source == "UserRef"
group track by new { TrackId = track.TrackId, FullRef = track.FullRef } into d
select new FullReferrer
{
Customer = d.Key.TrackId,
FullRefFalseCount = d.Where(x => x.FullRef == false).Count(),
FullRefTrueCount = d.Where(x => x.FullRef == true).Count()
};
誰でもそれを修正する方法について何か考えがありますか? .Where() 句が無視され、「グループ化」が私を台無しにしていると確信しています。なんとかできたら
group track by new { TrackId = track.TrackId, FullRefTrue = track.FullRef, FullRefFalse = !track.FullRef }"
それはうまくいくでしょう。これを行う方法はありますか?