加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从Expression <>中提取Func <>

发布时间:2020-12-15 08:17:08 所属栏目:百科 来源:网络整理
导读:我想提取Func来自以下表达式: ExpressionFuncIQueryableEntity,IOrderedQueryableEntity order = q = q.OrderByDescending(c=c.FullName);FuncIQueryableEntity,IOrderedQueryableEntity orderFunc = ? 我该怎么做? 编辑: 我们如何转换Func IQueryable En
我想提取Func<>来自以下表达式:
Expression<Func<IQueryable<Entity>,IOrderedQueryable<Entity>>> order = q => q.OrderByDescending(c=>c.FullName);

Func<IQueryable<Entity>,IOrderedQueryable<Entity>> orderFunc = ?

我该怎么做?

编辑:

我们如何转换Func< IQueryable< Entity>,IOrderedQueryable< Entity>>到表达式< Func< IQueryable< Entity>,IOrderedQueryable< Entity>>> ?

解决方法

您可以使用Compile方法转换任何Expresstion< TDelegate>进入TDelegate.

无法将委托转换为表达式< TDelegate>.当编译成代表时,有关组成表达式的详细信息丢失了.

理论上,您可以通过执行以下操作创建一个表达式,其中除了调用给定的委托之外,它的身体什么都不做:

Func<int> function = () => 42;
Expression<Func<int>> expression = () => function();

但这样的表达并不是真的有用.该表达式内部确实没有任何有意义的信息.因此,虽然技术上可行,但它从未真正实用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读