Я пытаюсь выбрать все эти ключи после того, как я выполню групповую работу.Это работает, если я помещаю группу в переменную, а затем выполняю выборку для переменной, но не сразу после группы.Я не знаю почему.
Это не работает:
var pureUsers = from u in userContext.Users
join ur in userContext.UserRoles on u.UserID equals ur.UserID
join r in userContext.Roles on ur.RoleID equals r.RoleID
join sm in userContext.SystemMasters on r.SystemMasterID equals sm.SystemMasterID
where sm.SystemName == "PURE"
group ur.UserRoleID by u.SAPID into g
select g.Key;
Это дает мне ошибку, «строка» не содержит определения «Ключ» и не имеет метода расширения«Ключ», принимающий первый аргумент типа «строка», может быть найден "
Однако он работает так:
var pureUsers = from u in userContext.Users
join ur in userContext.UserRoles on u.UserID equals ur.UserID
join r in userContext.Roles on ur.RoleID equals r.RoleID
join sm in userContext.SystemMasters on r.SystemMasterID equals sm.SystemMasterID
where sm.SystemName == "PURE"
group ur.UserRoleID by u.SAPID
var happy = pureUsers.Select(x => x.Key);
Я также пытался:
var pureUsers = (from u in userContext.Users
join ur in userContext.UserRoles on u.UserID equals ur.UserID
join r in userContext.Roles on ur.RoleID equals r.RoleID
join sm in userContext.SystemMasters on r.SystemMasterID equals sm.SystemMasterID
where sm.SystemName == "PURE"
group ur.UserRoleID by u.SAPID).Select(x => x.Key);
Это дает мне ту же ошибку.Я не вижу, чем это отличается от того, чтобы поместить его в pureUsers, а затем делать выборку.Кроме того, если есть лучший способ сделать это без участия группы, пожалуйста, скажите мне.Я группирую его по SAPID, потому что у пользователей может быть много UserRoles, и мне нужен список Users.SAPID, в котором каждый SAPID отображается один раз.