4

我使用来自 albahari.com 的流行 PredicateBuilder 有以下代码:

var predicate = PredicateBuilder.False<Message>();
predicate.Or(p => p.Subject.Contains("a"));
var test = this.MongoConnectionHandler.MongoCollection.AsQueryable().Where(predicate).ToList();
return this.MongoConnectionHandler.MongoCollection.AsQueryable().Count(predicate);  

问题是即使该列中有包含字母“a”的记录,它也不会返回任何内容。删除谓词构建器并直接从 AsQueryable() 中执行 contains 返回匹配的记录。

有没有人能够在 Mongo 中成功使用 PredicateBuilder 库?

4

1 回答 1

2

我在这里的类似问题中找到了解决方案:https ://stackoverflow.com/a/21462366/1316683

基本上添加 LinqKit 库并将 AsExpandable 添加到这一行:

var test = this.MongoConnectionHandler.MongoCollection.AsQueryable().AsExpandable<Message>().Where(predicate).ToList();
于 2015-07-29T19:47:28.953 回答