В вашем вопросе вы говорите, что хотите группировать по UserId
, но в выводе вы показываете Name
.Этот запрос будет сгруппирован по обоим.Вы можете настроить его под свои нужды.
from u in tblUsers
join a in tblAppointments on u.UserID equals a.UserID
group a by new { u.UserID, u.Name } into g
select new
{
Name = g.Key.Name,
Active = g.Count (x => x.Status == 1),
Canceled = g.Count (x => x.Status == 2),
Done = g.Count (x => x.Status == 3)
}
(это будет обрабатывать случай, если два пользователя имеют одно и то же имя)