【发布时间】:2016-07-15 22:54:02
【问题描述】:
我正在关注这个优秀的例子:Convert Linq to Sql Expression to Expression Tree
在我的例子中,我正在尝试构建一个表达式树,其中要过滤的类型仅在运行时才知道,并表示为字符串。在上面的例子中,类型 Region 是已知的并且可以直接输入:
ParameterExpression pe = Expression.Parameter(typeof(Region), "region");
在我的应用程序中,我已经能够将其重写为:
ParameterExpression pe = Expression.Parameter(Type.GetType("mystring"), "listData");
我的绊脚石是这个例子:
MethodCallExpression whereCallExpression = Expression.Call(
typeof(Queryable),
"Where",
new Type[] { query.ElementType },
query.Expression,
Expression.Lambda<Func<Region, bool>>(e3, new ParameterExpression[] { pe }));
var results = query.Provider.CreateQuery<Region>(whereCallExpression);
在这两行中,Region 是直接输入的。有没有办法动态地使用字符串“Region”来达到同样的效果?
【问题讨论】:
标签: c# linq expression-trees