デスクトップとモバイルの両方の顧客を持つサイトを開発しています。分析のために、ユーザーがデスクトップまたはモバイルデバイスを介してサイトにアクセスしているかどうかを知りたいのですが、そのために、ユーザーのデバイスの詳細を格納するためのいくつかの列を持つデータベースに 1 つのテーブルがあります。IsMobile という列が 1 つあり、ユーザーのデバイスに基づいて true/false を格納しています。今、私はlinqクエリを使ってtrueとfalseの数を取得したい.
以下のコードを使用しています。
public IList<IsMobile> IsMobile(DateTime fromDate, DateTime toDate)
{
var isMobile = (from d in _db.UserDeviceDetail
where ((d.CreatedOn.Month >= fromDate.Month && d.CreatedOn.Day >= fromDate.Day && d.CreatedOn.Year >= fromDate.Year) || (d.CreatedOn.Month <= toDate.Month && d.CreatedOn.Day <= toDate.Day && d.CreatedOn.Year <= toDate.Year))
group d by d.IsMobile into g
select new IsMobile
{
Yes = g.Count(n => n.IsMobile == true),
No = g.Count(n => n.IsMobile == false)
}).ToList();
return isMobile;
}
私は適切なカウントの詳細を取得していますが、2 つのリスト項目で 1 つははいをカウントし、もう 1 つは No をカウントします。代わりに、一度に yes と no の両方をカウントして、単一のリスト項目を取得したい
そのまま: {はい 20; いいえ 0} {はい 0; いいえ10}
どのようにすべきか: {はい 20; いいえ10}
私はlinqクエリを初めて使用します。何が間違っているのか教えてください。