如何替换Linq中的任何



我有一个从数据库中获取数据的Linq查询。问题是我使用"任何"来找出用户是否有api角色表中的角色。查询如下,它正在使用虚拟数据;但是每当我对数据库运行查询时,我收到本地序列不能在LINQ到SQL中使用查询操作符,除了包含操作符。

_apiRepository.GetQueryable<ApiInstance>() .SelectMany(apiInstance => apiInstance.ApiInstanceRoles) .Where(apiInstanceRole => CurrentUser.UsersInRoles.Any(cr => cr.RoleId == apiInstanceRole.RoleId))

尝试用Contains重写查询,如下所示:

_apiRepository
    .GetQueryable<ApiInstance>()
    .SelectMany(apiInstance => apiInstance.ApiInstanceRoles)
    .Where(apiInstanceRole => CurrentUser
        .UsersInRoles
        .Select(cr =>cr.RoleId)
        .Contains(apiInstanceRole.RoleId))

相关内容

  • 没有找到相关文章

最新更新