【发布时间】:2015-02-18 20:47:36
【问题描述】:
我想将表达式存储在变量中,然后将其传递给 linq 语句中的 Where 子句,但我似乎无法弄清楚我需要使用什么 Type。我想要达到的结果是:
var expression = x => x.UserId == 5;
var result = db.Table.Where(expression);
我知道存储在Table 中的实体的Type 在某处需要,但不知道在哪里。
【问题讨论】:
-
@DavidG:不完全是。 OP 可能在
Queryable.Where(需要Expression<Func<TSource, bool>>)之后,而不是Enumerable.Where(需要Func<TSource, bool>)。 -
@Douglas 这就是为什么我说这是一个线索,而不是一个完整的答案!
-
这是一个误导性的线索...
Func<Foo, bool> f = x => x.UserId == 5;也可以编译,但不会给出预期的结果。