0

我有以下 sql 查询,但无法将其转换为正确的 linq 语句。

SELECT 
    r.RoleName,
    uir.UserId
FROM 
    webpages_Roles r
         LEFT JOIN webpages_UsersInRoles uir ON uir.RoleId = r.RoleId 
                                                  AND r.AppId = 1
WHERE
     uir.UserId IS NULL

在我的 c# 中,我有这样的东西:

IEnumerable<Role> roles = uow.RolesRepository.Get(r => r.AppId == 1 && r.UsersInRoles.Any(uir => uir.UserId == null), includeProperties: "UsersInRoles");

我正在使用存储库,但它也可能是:

IEnumerable<Role> roles = context.Roles.Where(r => r.AppId == 1 && r.UsersInRoles.Any(uir => uir.UserId == null));
4

1 回答 1

1

尝试:

Enumerable roles = context.Roles
    .Where(r => r.AppId == 1 && !r.UsersInRoles.Any(uir => uir.UserId != null));
于 2013-11-01T18:16:45.343 回答