linq, где предложение отсутствует в операторе выбора

StackOverflow https://stackoverflow.com/questions/1313996

  •  19-09-2019
  •  | 
  •  

Вопрос

Может ли кто-нибудь помочь мне преобразовать SQL-запрос в LINQ VB.NET:

select rls.* from Roles rls(nolock)
where rls.id not in (
select r.ID from usersRole ur (nolock)
inner join Roles r(nolock) on ur.RoleID = r.ID
where user_id = 'NY1772')

Спасибо

Нет правильного решения

Другие советы

я нахожу свой ответ...

     'construct a where ID list
     Dim lstRoleIDs = From ur In ctx.UsersRoles _
                      Join rl In ctx.Roles _
                      On ur.RoleID Equals rl.ID _
                      Where ur.User_ID = UserId _
                      Select rl.ID

     Dim newQ = (From r In ctx.Roles _
                 Where Not lstRoleIDs.Contains( _
                        r.ID) _
                 Select New UserRoleList With {.ID = r.ID, .PermDesc = r.ID & " - " & r.Permission & " - " & r.PermissionDescription})

Если вы хотите сохранить подсказки (NOLOCK), у меня есть написал в блоге удобное решение используя методы расширения в C#.Обратите внимание, что это то же самое, что добавление подсказок nolock в каждую таблицу запроса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top