У меня есть ситуация, когда мой запрос возвращает следующие две строки:
UserName ID Designation RoleID
shd.1234 3 1 2
shd.1234 3 1 5
Я могу отобразить эти результаты в Jqgrid с помощью LINQ.
Однако я хочу отобразить егокак в одной строке: (если RoleID равен 5, отобразите его в другом столбце в той же строке.)
UserName ID Designation RoleID AdditionalRoleID
shd.1234 3 1 2 5
Мой текущий запрос выглядит примерно так:
empDetails = (from u in ObjectContext.USERS
join ed in ObjectContext.USERS_EMPLOYEE_DETAILS on u.UserID equals ed.UserID
join r in ObjectContext.ROLES_FOR_USERS on u.UserID equals r.UserID
join ro in ObjectContext.ROLES on r.RoleID equals ro.RoleID
where (r.HospitalID == Context.CurrentUser.HIdentity.HospitalID)
where(r.RoleID!= 4)
select new Models.AdminModelSettings.EmployeeDetailsForGivenHospital
{
UserName = u.UserName,
EmployeeId = ed.ID,
EmployeeDesignation = ed.Designation,
RoleID = r.RoleID,
RoleName = r.RoleID == 1 || r.RoleID == 2 || r.RoleID == 3 ? ro.RoleName : null,
AdditionalRole = r.RoleID == 5 ? ro.RoleName : null
}).ToList();
Хотелось бы узнать, как это можно сделать в SQL / LINQ.