例如,在 MongoDb 中,我可以将谓词传递给可查询实例
DataBase.GetCollection<BsonDocument>("entity")
.AsQueryable<Entity>()
.Where(item=>item.id ==5);
但现在我有这样的功能
IEnumerbale QueryData(Predicate<Entity> condition)
{
this.DataBase.GetCollection<BsonDocument>("entity")
.AsQueryable<Entity>()
.Where(item=> condition(item));
}
但这不起作用并告诉我:
Unsupported where clause: .
这是设计好的吗? 有什么解决方法吗?我做错了什么吗?
最佳答案
您甚至没有传递表达式。您的条件对 MongoDB 来说是一个完全不透明的函数。
您需要传入一个 Expression<Func<Entity,bool>>
并像这样调用 Where:
Where(condition)
关于c# - MongoDb 传递谓词参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020792/