我有一个从数据库中获取数据的Linq查询。问题是我使用“any”来查找如果用户有一个在api角色表中的角色。查询如下,它正在使用虚拟数据;但每当我对数据库运行查询时,我收到本地序列不能用于除Contains运算符之外的查询运算符的LINQ to SQL实现。
_apiRepository.GetQueryable<ApiInstance>()
.SelectMany(apiInstance => apiInstance.ApiInstanceRoles)
.Where(apiInstanceRole =>
CurrentUser.UsersInRoles.Any(cr => cr.RoleId == apiInstanceRole.RoleId))
答案 0 :(得分:2)
尝试使用Contains
重写查询,如下所示:
_apiRepository
.GetQueryable<ApiInstance>()
.SelectMany(apiInstance => apiInstance.ApiInstanceRoles)
.Where(apiInstanceRole => CurrentUser
.UsersInRoles
.Select(cr =>cr.RoleId)
.Contains(apiInstanceRole.RoleId))