在使用Entity Framework查询数据库时,我正在使用以下简化代码:
Expression<Func<MyClass, bool>> condition = w => w.gg.aa || w.hh.bb;
var query = context.Something.Where(condition)
...
现在,出于可重用性的原因,我想将表达式更改为采用两个参数:
Expression<Func<GGClass, HHClass, bool>> condition = (g,h) => g.aa || h.bb;
var query = context.Something.Where(x => condition(x.gg, x.hh)) // ERROR: DOESNT COMPILE!
...
很明显,我可以将其分解为多个表达式,但是不应该仅使用一个表达式就可以做到这一点-您到底应该在“哪里”过滤器中使用带有多个参数的表达式?