首页 新闻 会员 周边

关于C#中FUNC的表达式我如何解析他的意图?

0
悬赏园豆:10 [已解决问题] 解决于 2013-04-25 17:26

关于C#中FUNC的表达式我如何解析他的意图?

因为我想把他们转换成SQL语句.

会写代码的熊猫的主页 会写代码的熊猫 | 初学一级 | 园豆:188
提问于:2013-04-19 10:05
< >
分享
最佳答案
1

你无法这么做,比如这个:

public bool TestMethod(string s)
{
     //在这里我发起一个HttpRequest到另外一个服务器然后做一些事情
     //最后return一个bool值
}

Func<string, bool> predicate = new Func<string, bool>(a.TestMethod);
//接下来你如何将TestMethod里做的事情解析为T-SQL语句并执行?

实际上LINQ系列的ORM里处理的那些lambda表达式并不是Func<T, R>系列,而是对应的Expression<Func<T, R>>系列。通过解析ExpressionTree(如何解析请自行查阅相关文章),将“可以转成SQL语句”的表达式解析并执行。Expression<Func<T,R>>可以被编译成为Func<T,R>,反之则不行(至少目前不可以).

收获园豆:10
水牛刀刀 | 大侠五级 |园豆:6350 | 2013-04-19 10:38
其他回答(1)
0

语法糖,是封装好的委托。

gw2010 | 园豆:1487 (小虾三级) | 2013-04-19 12:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册