c# - MongoDb 传递谓词参数

标签 c# .net mongodb iqueryable mongodb-.net-driver

例如,在 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/

相关文章:

c# - 使用 XML 序列化将属性放入不同的 XML 命名空间

c# - C# Windows 应用程序的图库控件

子文档上的 mongoDB 文本索引

arrays - 数组中的精确匹配 (MongoDB)

javascript - TypeLite -> TypeScript 枚举 -> 运行时错误 : Uncaught ReferenceError: TSEnum is not defined

c# - .NET 代理检测

c# - C# 中的 C 回调函数问题 - 如何将值传递给指针?

MongoDB 聚合查询与选择字段

c# - BindingSource 作为 BindingSource 与 BindingSource 作为 ViewModel

c# - NHibernate:具有通用枚举属性的映射类