【发布时间】:2013-04-19 05:52:13
【问题描述】:
我正在为 nHibernate 动态构建 linq 查询。
由于依赖关系,我想稍后再转换/检索类型化的表达式,但到目前为止我一直没有成功。
这不起作用(演员应该在其他地方发生):
var funcType = typeof (Func<,>).MakeGenericType(entityType, typeof (bool));
var typedExpression = (Func<T, bool>)Expression.Lambda(funcType, itemPredicate, parameter); //Fails
这是有效的:
var typedExpression = Expression.Lambda<Func<T, bool>>(itemPredicate, parameter);
是否可以从 LambdaExpression 中获取“封装”类型的表达式?
【问题讨论】:
-
也许你正在寻找 typedExpression.Compile()
-
我需要将表达式作为 IQueryable 与我的 ORM 映射器一起使用,因此无法编译。
标签: c# .net casting lambda linq-expressions