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 を実行すると、一致するレコードが返されます。

PredicateBuilder ライブラリを Mongo で正常に使用できた人はいますか?

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 に答える