将SQL NOT IN查询转换为LINQ to Entities

时间:2014-06-18 15:18:16

标签: linq entity-framework linq-to-entities entity-framework-5

我有两个表:User和UserRole。

我有以下SQL查询来获取所有不在某个角色的用户:

SELECT * FROM User
WHERE UserID NOT IN (SELECT UserID FROM UserRole WHERE RoleID = 32)

假设我的 EF 5 模型中有User实体和UserRole实体,如何编写 LINQ to Entities 查询以获得与SQL相同的结果查询上面?

1 个答案:

答案 0 :(得分:0)

你使用类似的东西:

repo.Users.Where(x => x.UserRoles.Where(y => y.RoleID == 32).Count() == 0)

或者,根据评论:

repo.Users.Where(x => !x.UserRoles.Any(y => y.RoleID == 32))    

repo.Users.Where(x => x.UserRoles.Count(y => y.RoleID == 32) == 0)

...