我在 MongoDB 集合上构建了一个 Linq 查询,它可以正确检索我的文档:
var parts = mongoParts.AsQueryable()
.Where(mongo => mongo.Prop1 == bmbMatch.Prop1 && mongo.Prop2 == bmbMatch.Prop2)
.ToList();
这很好用,但是为了减少代码,我编写了一个通用函数
Func<T, T, bool> selector
它采用与上述 Where 子句中完全相同的 lamdba 表达式,这使得它:
var mongo = mongoQuery.AsQueryable()
.Where(tmongo => selector(tmongo, localMatch))
.ToList();
选择器为:
(mongo, local) => mongo.Prop1== local.Prop1 && mongo.Prop2 == local.Prop2
这给了我一个“不支持的 where 子句:”
有任何想法吗?