I'm trying to write this query in 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
this is my linq code, I made a class User() which holds the userid and the count of inputs the user made in Tbl_Inputs:
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;
}
The problem is if the input is 0 it returns 1.
Can't figure it out.
Thanks