1

我目前正在构建一个构建查询的 UI,我希望能够以 lambda 函数的形式存储其他表达式(因为它可以很容易地使用智能感知等添加它们)。但是,我找不到任何方法来获取例如。一个执行成员访问以转换为表达式的 lambda,然后我可以将其插入到表达式树中。

注意。我需要的不仅仅是成员访问

IE。我正在尝试填写以下函数的主体

Function GetExpression(Of ParamType, ReturnType) _
    (f As Func(Of ParamType, ReturnType)) As Expression
4

1 回答 1

2

将您的方法参数更改为:

Function GetExpression(Of ParamType, ReturnType) _
    (f As Expression(Of Func(Of ParamType, ReturnType))) As Expression

当您使用 lambda 调用它时,编译器会将标记化的表达式树提供给方法而不是编译的委托。

将执行 lambda 的Enumerable.Where与不执行 lambda 的Queryable.Where进行比较和对比。

于 2012-10-29T15:02:15.520 回答