2

有人可以帮我从 SQL Query 转换为 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')

谢谢

4

2 回答 2

2

我找到了我自己的答案...

     '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})
于 2009-08-21T20:22:23.653 回答
0

如果您想保留 (NOLOCK) 提示,我在博客中使用 C# 中的扩展方法编写了一个方便的解决方案。请注意,这与向查询中的每个表添加 nolock 提示相同。

于 2010-06-09T00:28:52.670 回答