Linq系列(9)——表达式树之完结(案例与总结)
摘要:这一节作为表达式树的完结篇,我将上传一些我写的案例与做一些总结。其实之前我在惠普的COE(Center of Expert)也做过为期2节的关于表达式树的training,这一节中的案例也是我那时training时写的。
阅读全文
posted @
2012-03-25 17:12
Edward.Zhan
阅读(2781)
推荐(4) 编辑
Linq系列(8)——表达式树之应用场景
摘要:大家应该可以理解表达式树由body和parameter是2部分组成,然后,方法能实现的功能表达式树都可以实现。表达式树可以用来表示一个逻辑过程,并且,可以让用户传入parameter.也就是说,表达式树可以使逻辑过程独立。
所以,在我平时的项目里面,在一个应用场景下,我会首先想到使用表达式树。
阅读全文
posted @
2011-03-26 17:04
Edward.Zhan
阅读(2078)
推荐(2) 编辑
Linq系列(7)——表达式树之ExpressionVisitor
摘要:我们将一个表达式树比作一辆2轮自行车,那么body就是自行车骨架,parameter就是2个车轮。
好了,我们可以把上面代码中的lambd0和lambd1看成2辆双轮自行车。
我们在代码中想把这2辆双轮自行车拼接成一辆3人骑的4轮自行车,所以我们写了以下代码:
Expression left = lambd0.Body;
Expression right = lambd1.Body;
注意!这就是问题的关键所在,这里我们只是引用了这2个自行车的骨架,而不是复制!我们希望构造出的4轮自行车没有任何骨架,这2句只是说想引用已有的2个骨架,但问题就来了,已有的自行车骨架还连接着lambd0和lambd1的车轮,并不能被新的自行车所用,我们必须按照已有的骨架复制出一个一模一样的骨架才能被我们的新的4轮自行车所用。
阅读全文
posted @
2010-12-06 16:00
Edward.Zhan
阅读(3710)
推荐(7) 编辑
Linq系列(6)——表达式树之Body与Parameter
摘要:到这里我们初窥了表达式树的结构。这一篇只是作为一个我给自己找感觉的引子。最后我想提出一个问题, 大家从之前一系列的博文中可以看出,构建表达式树不是一个很简单的事情,那么,在逻辑相似的情况下,我们是否可以访问并抽取出一个已有表达式树的结构并用这个结构来构建出一个新的表达式树呢?
阅读全文
posted @
2010-11-13 17:08
Edward.Zhan
阅读(1984)
推荐(3) 编辑
Linq系列(5)——表达式树之案例应用
摘要:就知识查询手册这个层面来说,我相信.net的知识msdn上没有查不到的,我只是努力给大家展现我自己的一个理解和学习的过程,把一些知识以一个特定的逻辑顺序串联起来,希望通过我的一些带有个人色彩的陈述和表达使大家能理解和运用这些知识。好了,进入正题,上一篇已经说过了,这一篇会写一些轻松的东西,主要来写写表达式树的一些案例和应用,相对而言会比较简单。
阅读全文
posted @
2010-04-15 16:19
Edward.Zhan
阅读(3242)
推荐(5) 编辑
Linq系列(4)——表达式树之Provider
摘要:如果给定一个表达式树,CreateQuery 方法可创建新的 IQueryable)) 对象。返回的对象所表示的查询与特定 LINQ 提供程序相关联。大多数返回可枚举结果的 Queryable 标准查询运算符方法将调用此方法。这些标准查询运算符方法将向此方法传递一个表示 LINQ 查询的 MethodCallExpression。我来说明白一点,这个方法就是把查询数据源和Expression关联起来。而当我们真正foreach数据源执行查询操作时,我们调用的是Execute方法
下面也是MSDN上的资料
Execute 方法会执行那些返回单个值(而不是值的可枚举的序列)的查询。在枚举包含返回可枚举结果的查询的表达式树的 IQueryable)) 对象时,会执行这些表达式树。
返回单一结果的 Queryable 标准查询运算符方法会调用 Execute。这些标准查询运算符方法将向此方法传递一个
阅读全文
posted @
2010-03-24 17:37
Edward.Zhan
阅读(3138)
推荐(4) 编辑
Linq系列(3)——Lambda 表达式,表达式树
摘要:而言之,Linq能处理的IEnumerable,sql,xml都是关系型数据源,而contain是定义在IEnumerable上的方法,相当于对关系的一种逻辑,所以Provider可以把它解析成表达式树,再直接点,当IEnumerable中的数据源可以表示成一个关系时,它的方法就可以被解析成表达式树。
阅读全文
posted @
2010-02-02 12:50
Edward.Zhan
阅读(4516)
推荐(4) 编辑
Linq系列(2)——类型推断,IEnumerable<T>和IQueryable<T>
摘要:这篇文章其实几天前就打算写了,但由于这几天一直忙于各种事务和工作,所以一直无暇提笔,十分抱歉,和上一篇一样,在进入今天的主题之前先贴上这篇文章一些来自msdn的参考资料。
阅读全文
posted @
2010-02-01 11:28
Edward.Zhan
阅读(6716)
推荐(5) 编辑
Linq系列(1)——开始
摘要:大家好,非常高兴能在博客园跟大家分享一下我有限的开发经历中的一些经验心得,首先是跟大家分享下我对Linq的一些理解,这个系列中的绝大部分内容都是我根据自己的理解原创的对一些问题的理解与阐述,所谓原创,就是希望大家在读的过程中如果发现什么不对的地方能及时指出,这对我本人也是一个很大的帮助与提高,还有一个就是非常欢迎大家转载这个系列的文章,但是希望转载的时候能注明出处,谢谢
阅读全文
posted @
2010-01-28 11:47
Edward.Zhan
阅读(3234)
推荐(1) 编辑