このクエリをlinqで記述しようとしています
SELECT dbo.Tbl_Users.ID, COUNT(dbo.Tbl_Inputs.ID) AS Inputs
FROM dbo.Tbl_Users LEFT JOIN
dbo.Tbl_Inputs ON dbo.Tbl_Inputs.User_ID = dbo.Tbl_Users.ID
GROUP BY dbo.Tbl_Users.ID
これは私の linq コードです。ユーザー ID とユーザーが Tbl_Inputs で行った入力の数を保持するクラス User() を作成しました。
List<User> GetAllUsers()
{
List<User> userlist = new List<User>();
userlist = (from u in Data.Tbl_Users
join i in Data.Tbl_Inputs on u.ID equals i.User_ID
into Joined
from p in Joined.DefaultIfEmpty()
group p by new { u.ID }
into grp select new User()
{
Id = grp.Key.ID,
Inputs = grp.Count()
}).ToList();
return userlist;
}
問題は、入力が 0 の場合に 1 を返すことです。
それを理解することはできません。
ありがとう