2011-04-24 5 views
2

엔티티가 있습니다.RavenDb의 하위 목록에 포함되어 있지 않습니다.

class Something{ 
    public List<string> Tags {get;set;} 
} 

이제 태그가없는 모든 항목을 쿼리해야합니다.

처리되지 않은 예외 : System.InvalidCastException :

var res = s.Query<Something>()    
      .Where(x => !x.Tags.Any(t => t == "Test3")); 

는 실패 '을 System.Linq를 입력 할 유형 'System.Linq.Expressions.MethodCallExpressionN ' 의 캐스트 개체 수 없습니다. Expressions.MemberExpression '입니다.

일반 쿼리는 작동하지 않습니다

var res = s.Advanced.LuceneQuery<Something>() 
      .Where("-Tags:Test3"); 

... 단순히 아무 것도 반환하지 않습니다.

어떻게 이러한 쿼리를 작성 하시겠습니까?

+0

여기에 s의 유형은 무엇입니까? –

+0

@Akram IDocumentSession –

답변

5

있습니다 당신은 또한 작동되는, 사용할 수있는에서 확장 방법!

1

해결책은 간단하다 :

var res = s.Advanced.LuceneQuery<Something>() 
    .Where("Tags:(* -Test3)"); 
+0

거기에 lucene없이 이것을 할 수있는 방법이 있습니까? –

관련 문제