具有多个参数的Expression Func

时间:2019-05-24 12:32:17

标签: c# entity-framework linq lambda iqueryable

在使用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!
...

很明显,我可以将其分解为多个表达式,但是不应该仅使用一个表达式就可以做到这一点-您到底应该在“哪里”过滤器中使用带有多个参数的表达式?

0 个答案:

没有答案