Кто-нибудь смог успешно использовать PredicateBuilder с сайта albahari.com против MongoDB?

У меня есть следующий код, использующий популярный PredicateBuilder с сайта albahari.com:

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);  

Проблема в том, что он ничего не возвращает, хотя в этом столбце есть записи, содержащие букву «а». Удаление построителя предикатов и простое выполнение contains непосредственно вне AsQueryable() возвращает совпадающие записи.

Кто-нибудь смог успешно использовать библиотеку PredicateBuilder с Mongo?


person Val    schedule 20.07.2013    source источник


Ответы (1)


Я нашел решение в аналогичном вопросе здесь: https://stackoverflow.com/a/21462366/1316683

В основном добавьте библиотеку LinqKit и добавьте AsExpandable в эту строку:

var test = this.MongoConnectionHandler.MongoCollection.AsQueryable().AsExpandable<Message>().Where(predicate).ToList();
person MDave    schedule 29.07.2015