我想提取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();
但这样的表达并不是真的有用.该表达式内部确实没有任何有意义的信息.因此,虽然技术上可行,但它从未真正实用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。