不包含在RavenDb中的子列表中

时间:2011-04-24 22:27:59

标签: c# ravendb

我有实体。

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

现在我需要查询没有给定标记的所有实体。

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

失败:

  

未处理的例外情况:   System.InvalidCastException:无法执行   铸造对象的类型   'System.Linq.Expressions.MethodCallExpressionN'   输入   'System.Linq.Expressions.MemberExpression'。

普通查询也不起作用:

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

......它根本不会返回任何内容。

如何编写此类查询?

2 个答案:

答案 0 :(得分:5)

您可以使用In扩展方法,也可以使用!

答案 1 :(得分:1)

解决方案很简单:

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