我有实体。
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");
......它根本不会返回任何内容。
如何编写此类查询?
答案 0 :(得分:5)
您可以使用In扩展方法,也可以使用!
答案 1 :(得分:1)
解决方案很简单:
var res = s.Advanced.LuceneQuery<Something>()
.Where("Tags:(* -Test3)");