从 lambda 表达式中提取输入参数名称
Extract input parameter name from lambda expression
我正在与 system.linq.dynamic.core 合作
和 nhibernate linq。现在我想将两个动态 linq 表达式传递给一个方法。一份用于父 table,一份用于加入的子列表。
两个表达式的输入参数都是随机的,所以表达式可以是
"x => x.Name == \"灯芯\" "
或者
" k => k.FirstName = \"John\" "
现在我知道使用动态 linq 可以将字符串表达式解析为 LambdaExpression。
如果我想创建连接,则必须为连接的连接设置别名 table。因此,我想从表达式中提取 'x' 或 'k'。
这可能吗?
LambdaExpression
有 a Parameters
property,您可以使用它来访问有关 lambda 参数的信息。在你的情况下,这可能是这样的:
string GetParameterName(LambdaExpression expression) => expression.Parameters.Single().Name;
我正在与 system.linq.dynamic.core 合作 和 nhibernate linq。现在我想将两个动态 linq 表达式传递给一个方法。一份用于父 table,一份用于加入的子列表。 两个表达式的输入参数都是随机的,所以表达式可以是
"x => x.Name == \"灯芯\" "
或者
" k => k.FirstName = \"John\" "
现在我知道使用动态 linq 可以将字符串表达式解析为 LambdaExpression。
如果我想创建连接,则必须为连接的连接设置别名 table。因此,我想从表达式中提取 'x' 或 'k'。 这可能吗?
LambdaExpression
有 a Parameters
property,您可以使用它来访问有关 lambda 参数的信息。在你的情况下,这可能是这样的:
string GetParameterName(LambdaExpression expression) => expression.Parameters.Single().Name;