我有一个从数据库中获取数据的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))