1
사용자 역할을 기반으로 활동을 필터링하려고합니다. 관리자는 Manager
역할을 포함하는 활동 만 볼 수 있습니다. 자세한 내용은 아래를 참조하십시오.RavenDb 4 : 문자열 배열의 문자열이 다른 문자열 배열에 있는지 확인하십시오.
데이터 : 활동을 필터링의
var filtered = await context.Query<Activity>()
.Where(x => x.Roles.Any(y => user.Roles.Contains(y)))
.ToListAsync();
예상 결과 필터
var user = new User
{
Roles = [
"Manager"
]
}
var activities = new List<Activity>
{
new Activity
{
Description = "My First Activity",
Roles = [
"Admin",
"Manager"
]
},
new Activity
{
Description = "My Second Activity",
Roles = [
"Admin"
]
},
new Activity
{
Description = "My Third Activity",
Roles = [
"Manager",
"Client"
]
},
}
쿼리 : 쿼리
[
{
new Activity
{
Description = "My First Activity",
Roles = [
"Admin",
"Manager"
]
}
new Activity
{
Description = "My Third Activity",
Roles = [
"Manager",
"Client"
]
},
}
]
오류를
System.InvalidOperationException : Can't extract value from expression of type: Parameter
오류가 발생하므로 분명히 잘못된 것이 있습니다. 이것이 올바른 방법입니까 아니면 더 좋은 것이 있습니까? 이 쿼리시에 계산을 할 RavenDB이 필요
매력처럼 작동했습니다. 고맙습니다! –