<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_编程之美</title><subtitle type="text">继续学习ING</subtitle><id>http://feed.cnblogs.com/blog/u/32228/rss</id><updated>2012-05-26T11:22:19Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/32228/rss"/><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/05/26/2519432.html</id><title type="text">DMSLinq表达式框架实现(六)</title><summary type="text">这段时间一直在优化DMSLinq,也看到了有些方法存在不合理处.还把框架内的公用类进行了分解,以后可以开源用.优化了一些方法,使其更能支持每个人的习惯写法~1.改进Join前不能加Where条件的BUG2.改进查询列时As方法用new匿名实例时出现两个As列名的现象3.增加WhereClip等动态拼接条件4.修改Guid.NewID()返回为空的现象5.增加实体过滤条件,DMSLinqQueryProvider处理器,以Config形式加入Filter,做数据权限时会用到!可用实体的形式过滤,也可以用全部的查询语句进行过滤,需实现IDMSLinqQueryFilter接口6.增加直接查询SQL</summary><published>2012-05-26T11:20:00Z</published><updated>2012-05-26T11:20:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/05/26/2519432.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/05/26/2519432.html"/><content type="html">&lt;p&gt;这段时间一直在优化DMSLinq,也看到了有些方法存在不合理处.还把框架内的公用类进行了分解,以后可以开源用.优化了一些方法,使其更能支持每个人的习惯写法~&lt;/p&gt;&lt;p&gt;1.改进Join前不能加Where条件的BUG&lt;/p&gt;&lt;p&gt;2.改进查询列时As方法用new匿名实例时出现两个As列名的现象&lt;/p&gt;&lt;p&gt;3.增加WhereClip等动态拼接条件&lt;/p&gt;&lt;p&gt;4.修改Guid.NewID()返回为空的现象&lt;/p&gt;&lt;p&gt;5.增加实体过滤条件,DMSLinqQueryProvider处理器,以Config形式加入Filter,做数据权限时会用到!可用实体的形式过滤,也可以用全部的查询语句进行过滤,需实现IDMSLinqQueryFilter接口&lt;/p&gt;&lt;p&gt;6.增加直接查询SQL语句的方法,包含分页&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2519432.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/05/26/2519432.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/05/14/2500713.html</id><title type="text">DMSLinq表达式框架实现(五) DMSTableExpression实现</title><summary type="text">1 /// &lt;summary&gt; 2 /// 表的表达式处理实现 3 /// &lt;/summary&gt; 4 public class DMSTableExpression : DMSExpressionVisitor, IDMSTableExpressionParser 5 { 6 /// &lt;summary&gt; 7 /// 8 /// &lt;/summary&gt; 9 public IDMSDbProvider DbProvider 10 { 11 g...</summary><published>2012-05-14T14:56:00Z</published><updated>2012-05-14T14:56:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/05/14/2500713.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/05/14/2500713.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008080;"&gt;  1&lt;/span&gt;  &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  2&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 表的表达式处理实现&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  3&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  4&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; DMSTableExpression : DMSExpressionVisitor, IDMSTableExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  5&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  6&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  7&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;  8&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  9&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSDbProvider DbProvider&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 10&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 11&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 12&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 13&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 14&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; List&amp;lt;SingleTableExpression&amp;gt;&lt;span style="color: #000000;"&gt; SingleExpression&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 15&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 16&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 17&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 18&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 19&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 20&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 21&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 22&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; Expression DMSExpression { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 23&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 24&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 25&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 26&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; KeyValue { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 27&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 28&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 29&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 30&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; TableNameAlias { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 31&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 32&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; StringBuilder _ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 33&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 34&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 35&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 36&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="keyTable"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 37&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 38&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; keyTable)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 39&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 40&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 41&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 42&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 43&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(DMSExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 44&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 45&lt;/span&gt;             keyTable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 46&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 47&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (keyTable.Count &amp;gt; &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 48&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 49&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; lastKey =&lt;span style="color: #000000;"&gt; keyTable.Last().Key;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 50&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TableNameAlias.ContainsKey(lastKey))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 51&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 52&lt;/span&gt;                     keyTable[lastKey] =&lt;span style="color: #000000;"&gt; TableNameAlias[lastKey];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 53&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 54&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 55&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 56&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 57&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; IsAs = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 58&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 59&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 60&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 61&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 62&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; AnalyzeExpression()&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 63&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 64&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 65&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.IsAs = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 66&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 67&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 68&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(DMSExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 69&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 70&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 71&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 72&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 73&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 74&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 75&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 76&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="type"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 77&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Append(IDMSBase dms, Type type)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 78&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 79&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.KeyValue == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 80&lt;/span&gt;                 KeyValue = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 81&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (SingleExpression == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 82&lt;/span&gt;                 SingleExpression = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; List&amp;lt;SingleTableExpression&amp;gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 83&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (TableNameAlias == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 84&lt;/span&gt;                 TableNameAlias = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 85&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 86&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(DMSWhere) ==&lt;span style="color: #000000;"&gt; type&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 87&lt;/span&gt;                || &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(DMSOn) ==&lt;span style="color: #000000;"&gt; type&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 88&lt;/span&gt;                || &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(DMSSelect) ==&lt;span style="color: #000000;"&gt; type)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 89&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 90&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (SingleExpression.Find(q =&amp;gt; q.Key == dms.CurrentType &amp;amp;&amp;amp; q.TableType == type) != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 91&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 92&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 93&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 94&lt;/span&gt;                 SingleExpression.Add(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SingleTableExpression() { Key = dms.CurrentType, TableType =&lt;span style="color: #000000;"&gt; type });&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 95&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 96&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!type.IsGenericType &amp;amp;&amp;amp;&lt;span style="color: #000000;"&gt; type.IsClass)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 97&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 98&lt;/span&gt;                 NewArrayExpression newArrayExpression = Expression.NewArrayInit(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;), Expression.New(type));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 99&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt;                     NewArrayExpression newArrayExpression2 = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewArrayExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;                     IEnumerable&amp;lt;Expression&amp;gt; initializers2 =&lt;span style="color: #000000;"&gt; newArrayExpression2.Expressions.Concat(newArrayExpression.Expressions);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;                     newArrayExpression = Expression.NewArrayInit(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;), initializers2);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newArrayExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newArrayExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt;                 NewArrayExpression newArrayExpression = Expression.NewArrayInit(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;), Expression.Constant(type.ToString()));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt;                     Expression exp = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DMSExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt;                     NewArrayExpression newArrayExpression2 = exp &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewArrayExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newArrayExpression2 != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt;                         IEnumerable&amp;lt;Expression&amp;gt; initializers2 =&lt;span style="color: #000000;"&gt; newArrayExpression2.Expressions.Concat(newArrayExpression.Expressions);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt;                         newArrayExpression = Expression.NewArrayInit(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;), initializers2);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newArrayExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newArrayExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;130&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;131&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;132&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;133&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;134&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="nex"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;135&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;136&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression VisitNew(NewExpression nex)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;137&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;138&lt;/span&gt;             Type type =&lt;span style="color: #000000;"&gt; nex.Type;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;139&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;140&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!type.IsGenericType &amp;amp;&amp;amp;&lt;span style="color: #000000;"&gt; type.IsClass)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;141&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;142&lt;/span&gt; &lt;span style="color: #000000;"&gt;                AdjustConstant(type);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;143&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;144&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; MyRegion&lt;br/&gt;&lt;span style="color: #008080;"&gt;145&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;else&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;146&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;{&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;147&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    foreach (Expression exp in nex.Arguments)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;148&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;149&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        this.Visit(exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;150&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        if (!this._ResultSql.ToString().EndsWith(","))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;151&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;152&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;            this._ResultSql.Append(",");&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;153&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;154&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;155&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    if (this._ResultSql.ToString().EndsWith(","))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;156&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;157&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        this._ResultSql.Remove(this._ResultSql.Length - 1, 1);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;158&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;159&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;    this._ResultSql.Append(" ");&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;160&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;} &lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;161&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;162&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; nex;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;163&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;164&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; AdjustConstant(Type type)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;165&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;166&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; text = &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;167&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; IsEntity = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;168&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;是否是IEntity&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;169&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (type.GetInterface(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(IEntity).FullName, &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;) != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;170&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;171&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.ContainsKey(type.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;172&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;173&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AliasName = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;t&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.Count;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;174&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TableNameAlias.ContainsKey(type.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;175&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;176&lt;/span&gt;                         AliasName =&lt;span style="color: #000000;"&gt; TableNameAlias[type.ToString()];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;177&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;178&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.Add(type.ToString(), AliasName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;179&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;180&lt;/span&gt;                 text =&lt;span style="color: #000000;"&gt; type.GetEntityName();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;181&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsNullOrEmpty(text)) {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;182&lt;/span&gt;                     text =&lt;span style="color: #000000;"&gt; type.Name;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;183&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;184&lt;/span&gt;                 IsEntity = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;185&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;186&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (type.GetInterface(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(IDMSParser).FullName, &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;) != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;是否是IDMSParser&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;187&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;188&lt;/span&gt;                 text =&lt;span style="color: #000000;"&gt; type.GetDMSName();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;189&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (type == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(DMSSelect))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;190&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;191&lt;/span&gt;                     text = &lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;192&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;193&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;194&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;195&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;196&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.ContainsKey(type.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;197&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;198&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AliasName = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;t&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.Count;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;199&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TableNameAlias.ContainsKey(type.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;200&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;201&lt;/span&gt;                         AliasName =&lt;span style="color: #000000;"&gt; TableNameAlias[type.ToString()];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;202&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;203&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.Add(type.ToString(), AliasName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;204&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;205&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;206&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.IsNullOrEmpty(text) &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; type.GetInterface(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(IDMSParser).FullName, &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;207&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;208&lt;/span&gt;                 text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildTableName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;209&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;210&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;211&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (IsEntity &amp;amp;&amp;amp;&lt;span style="color: #000000;"&gt; IsAs)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;212&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;213&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; AS &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;214&lt;/span&gt;                 text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue[type.ToString()];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;215&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.IsNullOrEmpty(text) &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;216&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;217&lt;/span&gt;                     text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildTableName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;218&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;219&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;220&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;221&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;222&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;223&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;224&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;225&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;226&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="c"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;227&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;228&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitConstant(ConstantExpression c)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;229&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;230&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;231&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (c.Value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;232&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;233&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (c.Type.IsArray)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;234&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;235&lt;/span&gt;                     Array array = c.Value &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; Array;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;236&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; array)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;237&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;238&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (current != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;239&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;240&lt;/span&gt;                             Type type =&lt;span style="color: #000000;"&gt; current.GetType();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;241&lt;/span&gt;                             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (type == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;242&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;243&lt;/span&gt;                                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.ContainsKey(current.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;244&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;245&lt;/span&gt;                                     &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AliasName = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;t&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.Count;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;246&lt;/span&gt;                                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.TableNameAlias.ContainsKey(current.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;247&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;248&lt;/span&gt;                                         AliasName = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.TableNameAlias[current.ToString()];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;249&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;250&lt;/span&gt;                                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.Add(current.ToString(), AliasName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;251&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;252&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;253&lt;/span&gt;                             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;254&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;255&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                AdjustConstant(type);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;256&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;257&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;258&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;259&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;260&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;261&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;262&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.ContainsKey(c.Value.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;263&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;264&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.KeyValue.Add(c.Value.ToString(), &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;t&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.Count);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;265&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;266&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;267&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;268&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitConstant(c);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;269&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;270&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;271&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;272&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;273&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="na"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;274&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;275&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitNewArray(NewArrayExpression na)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;276&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;277&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (Expression current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; na.Expressions)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;278&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;279&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(current);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;280&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;281&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;282&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; na;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;283&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;284&lt;/span&gt;     }&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2500713.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/05/14/2500713.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/05/14/2496702.html</id><title type="text">DMSLinq表达式框架实现(四)</title><summary type="text">这里就不写废话了.直接上代码,代码中也有注释 1 /// &lt;summary&gt; 2 /// 列表达式处理器 3 /// &lt;/summary&gt; 4 public class DMSColumnExpression : DMSExpressionVisitor, IDMSColumnExpressionParser 5 { 6 /// &lt;summary&gt; 7 /// DB访问处理接口 8 /// &lt;/summary&gt; 9 public IDMSDbProvider DbProvider ...</summary><published>2012-05-14T01:09:00Z</published><updated>2012-05-14T01:09:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/05/14/2496702.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/05/14/2496702.html"/><content type="html">&lt;p&gt;这里就不写废话了.直接上代码,代码中也有注释&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008080;"&gt;  1&lt;/span&gt; &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  2&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 列表达式处理器&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  3&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  4&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; DMSColumnExpression : DMSExpressionVisitor, IDMSColumnExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  5&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  6&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  7&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; DB访问处理接口&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  8&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;  9&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; IDMSDbProvider DbProvider { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 10&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 11&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 接口表达式&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 12&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 13&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; Expression DMSExpression { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 14&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 15&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 是否DISTINCT列&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 16&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 17&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; IsDistinct { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 18&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 19&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 是否TOP 1列&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 20&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 21&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; IsFirst { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 22&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 23&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 是否使用参数&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 24&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 25&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; bNeedParams { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 26&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 27&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 28&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 29&lt;/span&gt;         StringBuilder _ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 30&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 31&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 32&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 33&lt;/span&gt;         StringBuilder _MemberSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 34&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; IDMSBase dmsBase { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 35&lt;/span&gt;         Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; KeyValue = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 36&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 37&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 38&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 39&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Reflection.MemberInfo memberInfo;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 40&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; IDictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; FieldNameValuePairs&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 41&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 42&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 43&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 44&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 45&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 46&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 生成列查询SQL语句,并返回字段不带前缀的member&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 47&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 48&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="KeyTable"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 49&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="member"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 50&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 51&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; KeyTable, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; member)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 52&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 53&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.KeyValue =&lt;span style="color: #000000;"&gt; KeyTable;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 54&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.memberInfo = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 55&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 56&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._MemberSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 57&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 58&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 59&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(DMSExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 60&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 61&lt;/span&gt;             member =&lt;span style="color: #000000;"&gt; _MemberSql.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 62&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 63&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 64&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 65&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; UPDATE&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 66&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 67&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dbParams"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 68&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 69&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 70&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 71&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 72&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; num = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 73&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (KeyValuePair&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt; current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; FieldNameValuePairs)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 74&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 75&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (current.Value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 76&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 77&lt;/span&gt;                     num++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 78&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 79&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 80&lt;/span&gt;             IDbDataParameter[] array = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; IDbDataParameter[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 81&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bNeedParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 82&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 83&lt;/span&gt;                 array = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[num];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 84&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 85&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] includeColumns = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[num];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 86&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] includeColumnValues = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[num];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 87&lt;/span&gt;             num = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 88&lt;/span&gt;             Type currentType = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 89&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (dmsBase != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 90&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 91&lt;/span&gt;                 currentType =&lt;span style="color: #000000;"&gt; Type.GetType(dmsBase.CurrentType);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 92&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 93&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (KeyValuePair&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt; current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; FieldNameValuePairs)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 94&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 95&lt;/span&gt;                 includeColumns[num] = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(current.Key);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 96&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bNeedParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 97&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 98&lt;/span&gt;                     includeColumnValues[num] = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildParameterName(current.Key);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 99&lt;/span&gt;                     array[num] = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildParameter(current.Key, current.Value);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;                     AdjustConstant(num, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt;&lt;span style="color: #000000;"&gt; includeColumnValues, current, currentType);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;                 num++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; ndx = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;; ndx &amp;lt; includeColumns.Length; ndx++&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt;                 _ResultSql.AppendFormat(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{0}={1},&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, includeColumns[ndx], includeColumnValues[ndx]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt;             dbParams =&lt;span style="color: #000000;"&gt; array;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.ToString().TrimEnd(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;[] { &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt; });&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; INSERT&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="parameters"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dbParams"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; parameters, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt;             StringBuilder strParams = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; num = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (KeyValuePair&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt; current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; FieldNameValuePairs)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (current.Value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;130&lt;/span&gt;                     num++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;131&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;132&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;133&lt;/span&gt;             IDbDataParameter[] array = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; IDbDataParameter[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;134&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bNeedParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;135&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;136&lt;/span&gt;                 array = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[num];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;137&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;138&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] includeColumns = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[num];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;139&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] includeColumnValues = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[num];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;140&lt;/span&gt;             num = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;141&lt;/span&gt;             Type currentType = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;142&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (dmsBase != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;143&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;144&lt;/span&gt;                 currentType =&lt;span style="color: #000000;"&gt; Type.GetType(dmsBase.CurrentType);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;145&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;146&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (KeyValuePair&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt; current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; FieldNameValuePairs)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;147&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;148&lt;/span&gt;                 includeColumns[num] = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(current.Key);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;149&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bNeedParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;150&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;151&lt;/span&gt;                     includeColumnValues[num] = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildParameterName(current.Key);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;152&lt;/span&gt;                     array[num] = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildParameter(current.Key, current.Value);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;153&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;154&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;155&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;156&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;157&lt;/span&gt;                     AdjustConstant(num, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt;&lt;span style="color: #000000;"&gt; includeColumnValues, current, currentType);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;158&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;159&lt;/span&gt;                 num++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;160&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;161&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;162&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; ndx = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;; ndx &amp;lt; includeColumns.Length; ndx++&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;163&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;164&lt;/span&gt;                 _ResultSql.AppendFormat(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{0},&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, includeColumns[ndx]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;165&lt;/span&gt;                 strParams.AppendFormat(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;{0},&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, includeColumnValues[ndx]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;166&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;167&lt;/span&gt;             dbParams =&lt;span style="color: #000000;"&gt; array;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;168&lt;/span&gt;             parameters = strParams.ToString().TrimEnd(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;[] { &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt; });&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;169&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.ToString().TrimEnd(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;[] { &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt; });&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;170&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;171&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;172&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt;过滤参数值&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;173&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;174&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="num"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;175&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="includeColumnValues"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;176&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="current"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;177&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="currentType"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;178&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AdjustConstant(&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; num, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] includeColumnValues, KeyValuePair&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; current, Type currentType)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;179&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;180&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; IsStringType = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;181&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; value =&lt;span style="color: #000000;"&gt; current.Value;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;182&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (currentType != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;183&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;184&lt;/span&gt;                 PropertyInfo propertyInfo =&lt;span style="color: #000000;"&gt; currentType.GetProperty(current.Key);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;185&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (propertyInfo != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;186&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;187&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #000000;"&gt;propertyInfo.PropertyType.IsStringType())&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;188&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;189&lt;/span&gt;                         IsStringType = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;190&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (propertyInfo.PropertyType.IsBooleanType())&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;191&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;192&lt;/span&gt;                             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;193&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;194&lt;/span&gt;                                 value = (&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;)value ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;195&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;196&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;197&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;198&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;199&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;200&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!IsStringType &amp;amp;&amp;amp; value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;201&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;202&lt;/span&gt;                 value = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + value.ToString().Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;''&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;203&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;204&lt;/span&gt;             includeColumnValues[num] = value == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NULL&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; : value.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;205&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;206&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;207&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt; Append&lt;br/&gt;&lt;span style="color: #008080;"&gt;208&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;209&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 添加DMS&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;210&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;211&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;212&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;213&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="Body"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;214&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;&lt;span style="color: #000000;"&gt;(IDMSBase dms, Expression Body)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;215&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;216&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dmsBase =&lt;span style="color: #000000;"&gt; dms;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;217&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (Body &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;218&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;219&lt;/span&gt;                 NewExpression newExpression = Body &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;220&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;221&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;222&lt;/span&gt;                     Expression exp =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;223&lt;/span&gt;                     DMSExpression =&lt;span style="color: #000000;"&gt; exp;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;224&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;225&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;226&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (Body &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt;&lt;span style="color: #000000;"&gt; MethodCallExpression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;227&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;228&lt;/span&gt;                 MethodCallExpression methodCallExpression = Body &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; MethodCallExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;229&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (methodCallExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;230&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;231&lt;/span&gt;                     NewArrayExpression newArrayExpression = (methodCallExpression.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;] &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewArrayExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;232&lt;/span&gt;                     DMSExpression =&lt;span style="color: #000000;"&gt; newArrayExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;233&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;234&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;235&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (Body &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewArrayExpression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;236&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;237&lt;/span&gt;                 NewArrayExpression newArrayExpression = Body &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewArrayExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;238&lt;/span&gt;                 DMSExpression =&lt;span style="color: #000000;"&gt; newArrayExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;239&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;240&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;241&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;242&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 单表添加一个列名&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;243&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;244&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;245&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;246&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="selector"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;247&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, T&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;248&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;249&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dmsBase =&lt;span style="color: #000000;"&gt; dms;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;250&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (selector != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;251&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;252&lt;/span&gt;                 Expression body =&lt;span style="color: #000000;"&gt; selector.Body;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;253&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Append&amp;lt;T&amp;gt;&lt;span style="color: #000000;"&gt;(dms, body);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;254&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;255&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;256&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;257&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 两表连接添加一个NEW实例&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;258&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;259&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;260&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="R"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;261&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="TResult"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;262&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;263&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="selector"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;264&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T, R, TResult&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, R, TResult&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;265&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;266&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dmsBase =&lt;span style="color: #000000;"&gt; dms;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;267&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (selector != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;268&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;269&lt;/span&gt;                 NewExpression newExpression = selector.Body &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;270&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;271&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;272&lt;/span&gt;                     DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;273&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;274&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;275&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;276&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;277&lt;/span&gt;                 NewExpression newExpression = Expression.New(&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(TResult));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;278&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;279&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;280&lt;/span&gt;                     DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;281&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;282&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;283&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;284&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;285&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 三表连接添加一个NEW实例&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;286&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;287&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;288&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="T1"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;289&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="T2"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;290&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="TResult"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;291&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;292&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="selector"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;293&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T, T1, T2, TResult&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, T1, T2, TResult&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;294&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;295&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dmsBase =&lt;span style="color: #000000;"&gt; dms;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;296&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (selector != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;297&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;298&lt;/span&gt;                 NewExpression newExpression = selector.Body &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;299&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;300&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;301&lt;/span&gt;                     DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;302&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;303&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;304&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;305&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;306&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 添加一个NEW实例到列查询中&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;307&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;308&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="T"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;309&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;typeparam name="TReulst"&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;310&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;311&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="selector"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;312&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AppendResult&amp;lt;T, TReulst&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, TReulst&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;313&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;314&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dmsBase =&lt;span style="color: #000000;"&gt; dms;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;315&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (selector != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;316&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;317&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (selector.Body &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;318&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;319&lt;/span&gt;                     NewExpression newExpression = selector.Body &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;320&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;321&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;322&lt;/span&gt;                         DMSExpression =&lt;span style="color: #000000;"&gt; dms.ModifyExpression(newExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;323&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;324&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;325&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (selector.Body &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt;&lt;span style="color: #000000;"&gt; MethodCallExpression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;326&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;327&lt;/span&gt;                     MethodCallExpression methodCallExpression = selector.Body &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; MethodCallExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;328&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (methodCallExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;329&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;330&lt;/span&gt;                         NewArrayExpression newArrayExpression = (methodCallExpression.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;] &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewArrayExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;331&lt;/span&gt;                         DMSExpression =&lt;span style="color: #000000;"&gt; newArrayExpression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;332&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;333&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;334&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;335&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;336&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;337&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; UPDATE,DELETE,INSERT字段添加组合,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;338&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;339&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="dms"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;340&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="bNeedParams"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;是否使用参数形式&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;341&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="fieldNameValuePairs"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;改变字段(MAPPNG)集合&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;342&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append(IDMSBase dms, &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; bNeedParams, IDictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; fieldNameValuePairs)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;343&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;344&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.dmsBase =&lt;span style="color: #000000;"&gt; dms;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;345&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.bNeedParams =&lt;span style="color: #000000;"&gt; bNeedParams;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;346&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.FieldNameValuePairs =&lt;span style="color: #000000;"&gt; fieldNameValuePairs;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;347&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;348&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;349&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;350&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;351&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 重载访问NewExpression&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;352&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;353&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="nex"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;354&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;355&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression VisitNew(NewExpression nex)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;356&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;357&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; ndx = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;358&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (Expression exp &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; nex.Arguments)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;359&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;360&lt;/span&gt;                 memberInfo = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;361&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (nex.Members.Count &amp;gt;&lt;span style="color: #000000;"&gt; ndx)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;362&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;363&lt;/span&gt;                     memberInfo =&lt;span style="color: #000000;"&gt; nex.Members[ndx];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;364&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;365&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;366&lt;/span&gt;                 ndx++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;367&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.ToString().EndsWith(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;368&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;369&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;370&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;371&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._MemberSql.ToString().EndsWith(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;372&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;373&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._MemberSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;374&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;375&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;376&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.ToString().EndsWith(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;377&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;378&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Remove(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Length - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;379&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;380&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;381&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._MemberSql.ToString().EndsWith(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;382&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;383&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._MemberSql.Remove(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._MemberSql.Length - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;384&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;385&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._MemberSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;386&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; nex;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;387&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;388&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;389&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 重载访问NewArrayExpression&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;390&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;391&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="na"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;392&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;393&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitNewArray(NewArrayExpression na)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;394&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;395&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (Expression current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; na.Expressions)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;396&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;397&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(current);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;398&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;399&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;400&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.ToString().EndsWith(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;401&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;402&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Remove(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Length - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;403&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;404&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; na;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;405&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;406&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;407&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 重载访问MemberExpression&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;408&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;409&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;410&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;411&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitMemberAccess(MemberExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;412&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;413&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (m.Expression &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt;&lt;span style="color: #000000;"&gt; ParameterExpression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;414&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;415&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; text = &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;416&lt;/span&gt;                 Type valueType =&lt;span style="color: #000000;"&gt; m.Member.ReflectedType;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;417&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (valueType != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.ContainsKey(valueType.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;418&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;419&lt;/span&gt;                     text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue[valueType.ToString()];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;420&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;421&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;422&lt;/span&gt;                         text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;423&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;424&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(text + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;425&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;426&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;427&lt;/span&gt;                 text =&lt;span style="color: #000000;"&gt; m.Member.Name;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;428&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (text.StartsWith(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;get_&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, StringComparison.CurrentCultureIgnoreCase))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;429&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;430&lt;/span&gt;                     text = text.Substring(&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;431&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;432&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;433&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;434&lt;/span&gt;                     text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;435&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;436&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;437&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;438&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.memberInfo != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;439&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;440&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; memberName =&lt;span style="color: #000000;"&gt; (memberInfo.Name);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;441&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (memberName.StartsWith(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;get_&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, StringComparison.CurrentCultureIgnoreCase))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;442&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;443&lt;/span&gt;                         memberName = memberName.Substring(&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;444&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;445&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;446&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;447&lt;/span&gt;                         memberName = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(memberName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;448&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;449&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (text !=&lt;span style="color: #000000;"&gt; memberName)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;450&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;451&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; AS &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; +&lt;span style="color: #000000;"&gt; memberName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;452&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;453&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._MemberSql.Append(memberName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;454&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;455&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;456&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;457&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMemberAccess(m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;458&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;459&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;460&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 重载访问ConstantExpression&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;461&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;462&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="c"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;463&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;464&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitConstant(ConstantExpression c)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;465&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;466&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (c.Value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;467&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;468&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(c.Value.ToString());&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;469&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;470&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;471&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitConstant(c);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;472&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;473&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;474&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 重载访问MethodCallExpression&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;475&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;476&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;477&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;478&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitMethodCall(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;479&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;480&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (m == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;481&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; methodName =&lt;span style="color: #000000;"&gt; m.Method.Name;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;482&lt;/span&gt;             MethodInfo method = &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(DMSColumnExpression).GetMethod(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Handle&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; +&lt;span style="color: #000000;"&gt; methodName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;483&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (method != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;484&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;485&lt;/span&gt;                 Expression exp = method.Invoke(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;[] { m }) &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;486&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; exp;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;487&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;488&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMethodCall(m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;489&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;490&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;491&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;492&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理COUNT(*)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;493&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;494&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;495&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;496&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleCountAll(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;497&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;498&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; Count(*) &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;499&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;500&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;501&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;502&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理COUNT(列)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;503&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;504&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;505&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;506&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleCount(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;507&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;508&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;509&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;510&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;511&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;512&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理LEN(列)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;513&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;514&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;515&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;516&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleLen(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;517&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;518&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;519&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;520&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;521&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;522&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理MAX(列)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;523&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;524&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;525&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;526&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleMax(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;527&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;528&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;529&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;530&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;531&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;532&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理MIN(列)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;533&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;534&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;535&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;536&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleMin(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;537&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;538&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;539&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;540&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;541&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;542&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理AVG(列)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;543&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;544&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;545&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;546&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleAvg(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;547&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;548&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;549&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;550&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;551&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;552&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理SUM(列)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;553&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;554&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;555&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;556&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleSum(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;557&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;558&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;559&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;560&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;561&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;562&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理 (列) AS 别名&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;563&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;564&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;565&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;566&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleAs(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;567&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;568&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;569&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; value = LocalDMSExpressionChecker.ConvertConstantExpression(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]).Value;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;570&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;571&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;572&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; AS &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;573&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider.LeftToken + value + &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.RightToken);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;574&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;575&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;576&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;577&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;578&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;579&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;580&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;581&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;582&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleSpecialColumn(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;583&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;584&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; value = LocalDMSExpressionChecker.ConvertConstantExpression(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]).Value;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;585&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;586&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;587&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; text =&lt;span style="color: #000000;"&gt; value.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;588&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;589&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;590&lt;/span&gt;                     text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;591&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;592&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;593&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;594&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;595&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;596&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;597&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 处理方法拼接SQL&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;598&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;599&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="methodName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;600&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="m"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;601&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; MethodFunc(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; methodName, MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;602&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;603&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt; + methodName + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;604&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;605&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;) &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;606&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;607&lt;/span&gt;     }&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;相关项目下载可以联系本人QQ&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2496702.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/05/14/2496702.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/05/11/2478026.html</id><title type="text">DMSLinq表达式框架实现(三)</title><summary type="text">IDMSExpressionParser 相关接口提到这个首先要考虑一下数据库多种类型的情况,也就产生了一个IDMSDbProvider接口View Code 1 /// &lt;summary&gt; 2 /// DB访问处理接口 3 /// &lt;/summary&gt; 4 public interface IDMSDbProvider 5 { 6 TableConfiguration TableConfig { get; } 7 /// &lt;summary&gt; 8 /// 数据访问 9 /// &lt;/summary...</summary><published>2012-05-11T13:25:00Z</published><updated>2012-05-11T13:25:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/05/11/2478026.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/05/11/2478026.html"/><content type="html">&lt;p&gt;IDMSExpressionParser 相关接口&lt;/p&gt;&lt;p&gt;提到这个首先要考虑一下数据库多种类型的情况,也就产生了一个&lt;/p&gt;&lt;p&gt;IDMSDbProvider接口&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('1bbf8666-f4d8-4206-9360-77aac4870ad6')"&gt;&lt;div id="cnblogs_code_open_1bbf8666-f4d8-4206-9360-77aac4870ad6" class="cnblogs_code_hide"&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt;  &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; DB访问处理接口&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSDbProvider&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;         TableConfiguration TableConfig { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 数据访问&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;         IDMSDbAccess DbAccess { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 参数前缀 SQL为@,ORACLE为:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; ParamPrefix { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 表名,字段名的处理,像表名一般都会加[TableName],[ColumnName] 的左中括号&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; LeftToken { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 表名,字段名的处理,像表名一般都会加[TableName],[ColumnName] 的右中括号&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; RightToken { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 字段名处理 &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="name"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; BuildColumnName(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; name);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 表名处理 &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="name"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; BuildTableName(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; name);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 参数处理,返回类型为IDbDataParameter&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="name"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="value"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt;         IDbDataParameter BuildParameter(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; name, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; value);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 生成参数名称,这个要根据ParamPrefix来生成,也可以做特殊处理 &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="name"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; BuildParameterName(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; name);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt;     }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;我对接口进行了一下合并.其实我认为还有合并的地方.只时一时没有时间整理,先这样吧&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('ffe8c6da-de07-4f92-a28f-42e67b8d9f4e')"&gt;&lt;div id="cnblogs_code_open_ffe8c6da-de07-4f92-a28f-42e67b8d9f4e" class="cnblogs_code_hide"&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt;  &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 所有表达式总接口&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;         IDMSDbProvider DbProvider { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 接口表达式&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt;         &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;         Expression DMSExpression { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 表处理表达式&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSTableExpressionParser : IDMSExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;         Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; TableNameAlias { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Append(IDMSBase dms, Type type);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; KeyValue);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; AnalyzeExpression();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 列名处理表达式,这个暂未做DISTINCT处理&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSColumnExpressionParser : IDMSExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; KeyTable, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; member);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; parameters, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T, T1, T2, TResult&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, T1, T2, TResult&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T, R, TResult&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, R, TResult&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, T&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append(IDictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; fieldNameValuePairs);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AppendResult&amp;lt;T, TReulst&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, TReulst&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; Where条件处理表达式&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSWhereExpressionParser : IDMSExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; AnalyzeExpression();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; paramIndex, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; keyTable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; keyTable, &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; paramIndex, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T1, T2&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T1, T2, &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt; &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt; &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, DMSWhereClip&amp;lt;T&amp;gt; &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt; T : IEntity;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 排序处理表达式&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSOrderByExpressionParser : IDMSExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Append(IDMSBase dms, Type type);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;56&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, T&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;57&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; KeyTable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;58&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;59&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;60&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 分组处理表达式&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;61&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;62&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSGroupByExpressionParser : IDMSExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;63&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;64&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; KeyTable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;65&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T, TReulst&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, TReulst&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; selector);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;66&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Append(IDMSBase dms, Type type);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;67&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;68&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;69&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; HAVING条件处理表达式&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;70&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;71&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSHavingExpressionParser : IDMSExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;72&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;73&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Append(IDMSBase dms, Type type);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;74&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt;&lt;span style="color: #000000;"&gt; having);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;75&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; KeyTable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;76&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;77&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;78&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 表达式辅助接口&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;79&lt;/span&gt;     &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;80&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;interface&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;81&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;82&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;83&lt;/span&gt;     }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;接下来就是实现了..我先放个where的实现.其它的后续补上,哈!&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('b3caab9f-3c1e-49ee-be68-a4cd627ad41e')"&gt;&lt;div id="cnblogs_code_open_b3caab9f-3c1e-49ee-be68-a4cd627ad41e" class="cnblogs_code_hide"&gt;&lt;span style="color: #008080;"&gt;  1&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; DMSWhereExpression : DMSExpressionVisitor, IDMSWhereExpressionParser&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  2&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  3&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDMSDbProvider DbProvider&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  4&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  5&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  6&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  7&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  8&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; StringBuilder _ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  9&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; List&amp;lt;IDbDataParameter&amp;gt; _DbParams = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; List&amp;lt;IDbDataParameter&amp;gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 10&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; Expression DMSExpression { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 11&lt;/span&gt;         Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; KeyValue = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 12&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; ExpressionType? _LastestOperator = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 13&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; _ParamIndex = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 14&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; _NeedParams = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 15&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; bConstantStartWith = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 16&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; bConstantEndWith = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 17&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 18&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; bNeedParams, Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; keyTable)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 19&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 20&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.KeyValue =&lt;span style="color: #000000;"&gt; keyTable;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 21&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._NeedParams =&lt;span style="color: #000000;"&gt; bNeedParams;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 22&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._DbParams = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; List&amp;lt;IDbDataParameter&amp;gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 23&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 24&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 25&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 26&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(DMSExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 27&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 28&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 29&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; AnalyzeExpression()&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 30&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 31&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 32&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 33&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt;&lt;span style="color: #000000;"&gt; keyTable)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 34&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 35&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;, keyTable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 36&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 37&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 38&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(Dictionary&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; keyTable, &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; paramIndex, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 39&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 40&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ParamIndex =&lt;span style="color: #000000;"&gt; paramIndex;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 41&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;, keyTable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 42&lt;/span&gt;             dbParams = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._DbParams.ToArray();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 43&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 44&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 45&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; paramIndex, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt;&lt;span style="color: #000000;"&gt; IDbDataParameter[] dbParams)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 46&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 47&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ParamIndex =&lt;span style="color: #000000;"&gt; paramIndex;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 48&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.AnalyzeExpression(&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 49&lt;/span&gt;             dbParams = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._DbParams.ToArray();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 50&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 51&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 52&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T, &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt; &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 53&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 54&lt;/span&gt;             Expression expression = dms.ModifyExpression(&lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Body);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 55&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 56&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 57&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 58&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 59&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression = Expression.AndAlso(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DMSExpression, expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 60&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 61&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 62&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 63&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression =&lt;span style="color: #000000;"&gt; expression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 64&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 65&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 66&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 67&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T&amp;gt;(IDMSBase dms, DMSWhereClip&amp;lt;T&amp;gt; &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt; T : IEntity&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 68&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 69&lt;/span&gt;             Expression expression = dms.ModifyExpression(&lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DMSExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 70&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 71&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 72&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 73&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 74&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression = Expression.AndAlso(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DMSExpression, expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 75&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 76&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 77&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 78&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression =&lt;span style="color: #000000;"&gt; expression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 79&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 80&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 81&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 82&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Append&amp;lt;T1, T2&amp;gt;(IDMSBase dms, Expression&amp;lt;Func&amp;lt;T1, T2, &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt; &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 83&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 84&lt;/span&gt;             Expression expression = dms.ModifyExpression(&lt;span style="color: #0000ff;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Body);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 85&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 86&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 87&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 88&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 89&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression = Expression.AndAlso(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DMSExpression, expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 90&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 91&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 92&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 93&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DMSExpression =&lt;span style="color: #000000;"&gt; expression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 94&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 95&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 96&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 97&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 98&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 99&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitConstant(ConstantExpression c)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;             StringBuilder stringBuilder = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (c.Value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp;&lt;span style="color: #000000;"&gt; c.Type.IsArray)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;                 Array array = c.Value &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; Array;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; array)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (current != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.AdjustConstant(current, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt;&lt;span style="color: #000000;"&gt; stringBuilder);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt;                         stringBuilder.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NULL&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt;                     stringBuilder.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(stringBuilder.ToString().Trim(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;[] { &lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt; }));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (c.Value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.AdjustConstant(c.Value, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt;&lt;span style="color: #000000;"&gt; stringBuilder);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(stringBuilder.ToString());&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;NULL&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;130&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;131&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;132&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitConstant(c);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;133&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;134&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitMethodCall(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;135&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;136&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (m == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;137&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; methodName =&lt;span style="color: #000000;"&gt; m.Method.Name;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;138&lt;/span&gt;             MethodInfo method = &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(DMSWhereExpression).GetMethod(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Handle&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; +&lt;span style="color: #000000;"&gt; methodName);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;139&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (method != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;140&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;141&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (methodName.ToUpper() == &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;LIKE&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;142&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;143&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.bConstantStartWith = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.bConstantEndWith = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;144&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;145&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (methodName.ToUpper() == &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;STARTWITH&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;146&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;147&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.bConstantStartWith = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;148&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;149&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (methodName.ToUpper() == &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ENDWITH&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;150&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;151&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.bConstantStartWith = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;152&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;153&lt;/span&gt;                 Expression exp = method.Invoke(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;[] { m }) &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;154&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.bConstantStartWith = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.bConstantEndWith = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;155&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; exp;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;156&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;157&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMethodCall(m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;158&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;159&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitNewArray(NewArrayExpression na)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;160&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;161&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (Expression current &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; na.Expressions)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;162&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;163&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(current);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;164&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;165&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;166&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; na;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;167&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;168&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitUnary(UnaryExpression u)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;169&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;170&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitUnary(u);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;171&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;172&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitBinary(BinaryExpression b)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;173&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;174&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;175&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(b.Left);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;176&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._LastestOperator = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; ExpressionType?&lt;span style="color: #000000;"&gt;(b.NodeType);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;177&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt; + DMSOperators.FormatBinaryOperator(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._LastestOperator) + &lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;178&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(b.Right);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;179&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;180&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;181&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;182&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitMemberAccess(MemberExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;183&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;184&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (m.Expression &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt;&lt;span style="color: #000000;"&gt; ParameterExpression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;185&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;186&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; text = &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;187&lt;/span&gt;                 Type valueType =&lt;span style="color: #000000;"&gt; m.Member.ReflectedType;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;188&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (valueType != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.KeyValue != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue.ContainsKey(valueType.ToString()))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;189&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;190&lt;/span&gt;                     text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.KeyValue[valueType.ToString()];&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;191&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;192&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;193&lt;/span&gt;                         text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;194&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;195&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(text + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;196&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;197&lt;/span&gt;                 text =&lt;span style="color: #000000;"&gt; m.Member.Name;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;198&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;199&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;200&lt;/span&gt;                     text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;201&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;202&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;203&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;204&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;205&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMemberAccess(m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;206&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;207&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AdjustConstant(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; value, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder sb)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;208&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;209&lt;/span&gt;             &lt;br/&gt;&lt;span style="color: #008080;"&gt;210&lt;/span&gt;             Type type =&lt;span style="color: #000000;"&gt; value.GetType();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;211&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (type == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;) || type == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;) || type == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(DateTime) || type == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(Guid))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;212&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;213&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bConstantStartWith)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;214&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;215&lt;/span&gt;                     value = value + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;216&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;217&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bConstantEndWith)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;218&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;219&lt;/span&gt;                     value = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; +&lt;span style="color: #000000;"&gt; value;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;220&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }   &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;221&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._NeedParams &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;222&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;223&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ParamIndex++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;224&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider.BuildParameterName(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ParamIndex.ToString());&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;225&lt;/span&gt;                     IDbDataParameter item = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildParameter(text, value);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;226&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._DbParams.Add(item);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;227&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    sb.Append(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;228&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;229&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;230&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (type != &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;231&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;232&lt;/span&gt;                     sb.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;233&lt;/span&gt;                     value = value.ToString().Replace(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;''&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;234&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;235&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;236&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;237&lt;/span&gt;                     value = ((&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;)value) ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;0&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;238&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;239&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;240&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;241&lt;/span&gt;                 &lt;br/&gt;&lt;span style="color: #008080;"&gt;242&lt;/span&gt; &lt;span style="color: #000000;"&gt;                sb.Append(value);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;243&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (type != &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;244&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;245&lt;/span&gt;                     sb.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;246&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;247&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;248&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;249&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;250&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;251&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bConstantStartWith)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;252&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;253&lt;/span&gt;                     value = value + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;254&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;255&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (bConstantEndWith)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;256&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;257&lt;/span&gt;                     value = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; +&lt;span style="color: #000000;"&gt; value;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;258&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;259&lt;/span&gt; &lt;span style="color: #000000;"&gt;                sb.Append(value);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;260&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;261&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;262&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;263&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;264&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleIn(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;265&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;266&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;267&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;268&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; IN (&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;269&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;].Type.BaseType == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(DMS))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;270&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;271&lt;/span&gt;                 UnaryExpression castMethodCall = Expression.Convert(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;], &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(DMS));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;272&lt;/span&gt;                 LambdaExpression exp =&lt;span style="color: #000000;"&gt; Expression.Lambda(castMethodCall);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;273&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; dynamicObject =&lt;span style="color: #000000;"&gt; exp.Compile();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;274&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; obj = dynamicObject.DynamicInvoke() &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; DMS;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;275&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(obj.GetResultSql().Trim());&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;276&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;277&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;278&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;279&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;))&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;280&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;281&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;282&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleNotIn(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;283&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;284&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;285&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;286&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; NOT IN (&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;287&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;].Type.BaseType == &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(DMS))&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;288&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;289&lt;/span&gt;                 UnaryExpression castMethodCall = Expression.Convert(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;], &lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(DMS));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;290&lt;/span&gt;                 LambdaExpression exp =&lt;span style="color: #000000;"&gt; Expression.Lambda(castMethodCall);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;291&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; dynamicObject =&lt;span style="color: #000000;"&gt; exp.Compile();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;292&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; obj = dynamicObject.DynamicInvoke() &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; DMS;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;293&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(obj.GetResultSql().Trim());&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;294&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;295&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;296&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;297&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;))&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;298&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;299&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;300&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleLike(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;301&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;302&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;303&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;304&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; Like &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;305&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;306&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;307&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;308&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;309&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleStartWith(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;310&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;311&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;312&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;313&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; Like &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;314&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;315&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;316&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;317&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;318&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleEndWith(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;319&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;320&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;321&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;322&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; Like &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;323&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;324&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;325&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;326&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;327&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;328&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleIsNull(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;329&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;330&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;331&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;332&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; IS NULL)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;333&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;334&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;335&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;336&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleIsNotNull(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;337&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;338&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;339&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;340&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; IS NOT NULL)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;341&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;342&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;343&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;344&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleCountAll(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;345&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;346&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; Count(*) &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;347&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;348&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;349&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleCount(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;350&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;351&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;352&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;353&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;354&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleLen(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;355&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;356&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;357&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;358&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;359&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleMax(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;360&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;361&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;362&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;363&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;364&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleMin(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;365&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;366&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;367&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;368&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;369&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleAvg(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;370&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;371&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;372&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;373&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;374&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleSum(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;375&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;376&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MethodFunc(m.Method.Name, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;377&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;378&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;379&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;380&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleAs(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;381&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;382&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;383&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; value = LocalDMSExpressionChecker.ConvertConstantExpression(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]).Value;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;384&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;385&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;386&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; AS &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;387&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider.LeftToken + value + &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.RightToken);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;388&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;389&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;390&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;391&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleSpecialColumn(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;392&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;393&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; value = LocalDMSExpressionChecker.ConvertConstantExpression(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]).Value;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;394&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (value != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;395&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;396&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; text =&lt;span style="color: #000000;"&gt; value.ToString();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;397&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.DbProvider != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;398&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;399&lt;/span&gt;                     text = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.DbProvider.BuildColumnName(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;400&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;401&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;._ResultSql.Append(text);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;402&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;403&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;404&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;405&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleNewID(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;406&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;407&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;408&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;409&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; MethodFunc(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; methodName, MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;410&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;411&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt; + methodName + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;412&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;413&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;) &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;414&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;415&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleGreaterThan(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;416&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;417&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.CompareFunc(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;418&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;419&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;420&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleGreaterThanOrEqual(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;421&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;422&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.CompareFunc(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;423&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;424&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;425&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleLessThan(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;426&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;427&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.CompareFunc(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;428&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;429&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;430&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression HandleLessThanOrEqual(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;431&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;432&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.CompareFunc(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, m);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;433&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;434&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;435&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; CompareFunc(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; CompareStr, MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;436&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;437&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;438&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;439&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt; + CompareStr + &lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;440&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.Visit(m.Arguments[&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;441&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;._ResultSql.Append(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;442&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;443&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;444&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;445&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;446&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;447&lt;/span&gt;     }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;相关项目下载可以联系本人QQ;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2478026.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/05/11/2478026.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/05/01/2478024.html</id><title type="text">DMSLinq表达式框架实现(二)</title><summary type="text">DMSExpressionVisitor类重写,其实这个类就是System.Linq下面的ExpressionVisitor类,改它也是因为更好控制我们的SQL语句而已.下面贴出代码:View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Linq.Expressions; 6 using System.Collections.ObjectModel; 7 8 namespace KingNET...</summary><published>2012-05-01T09:23:00Z</published><updated>2012-05-01T09:23:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/05/01/2478024.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/05/01/2478024.html"/><content type="html">&lt;p&gt;DMSExpressionVisitor类重写,其实这个类就是System.Linq下面的ExpressionVisitor类,改它也是因为更好控制我们的SQL语句而已.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下面贴出代码:&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('6df7be34-f990-4153-a26a-f91c7bba0232')"&gt;&lt;div id="cnblogs_code_open_6df7be34-f990-4153-a26a-f91c7bba0232" class="cnblogs_code_hide"&gt;&lt;span style="color: #008080;"&gt;  1&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  2&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Collections.Generic;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  3&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Linq;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  4&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Text;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  5&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Linq.Expressions;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  6&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Collections.ObjectModel;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  7&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;  8&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt; KingNET.DMSFrame.DMSLinq&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;  9&lt;/span&gt; &lt;span style="color: #000000;"&gt;{&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 10&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;abstract&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; DMSExpressionVisitor&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 11&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 12&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression Visit(Expression exp)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 13&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 14&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (exp == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 15&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 16&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; exp;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 17&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 18&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (exp.NodeType)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 19&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 20&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Add:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 21&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.AddChecked:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 22&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.And:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 23&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.AndAlso:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 24&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.ArrayIndex:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 25&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Coalesce:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 26&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Divide:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 27&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Equal:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 28&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.ExclusiveOr:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 29&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.GreaterThan:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 30&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.GreaterThanOrEqual:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 31&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.LeftShift:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 32&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.LessThan:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 33&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.LessThanOrEqual:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 34&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Modulo:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 35&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Multiply:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 36&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.MultiplyChecked:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 37&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.NotEqual:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 38&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Or:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 39&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.OrElse:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 40&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.RightShift:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 41&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Subtract:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 42&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.SubtractChecked:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 43&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitBinary((BinaryExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 44&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 45&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.ArrayLength:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 46&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Convert:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 47&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.ConvertChecked:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 48&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Negate:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 49&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.NegateChecked:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 50&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Not:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 51&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Quote:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 52&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.TypeAs:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 53&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitUnary((UnaryExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 54&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 55&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Call:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 56&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMethodCall((MethodCallExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 57&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 58&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Conditional:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 59&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitConditional((ConditionalExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 60&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 61&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Constant:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 62&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitConstant((ConstantExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 63&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 64&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Invoke:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 65&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitInvocation((InvocationExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 66&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 67&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Lambda:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 68&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitLambda((LambdaExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 69&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 70&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.ListInit:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 71&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitListInit((ListInitExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 72&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 73&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.MemberAccess:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 74&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMemberAccess((MemberExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 75&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 76&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.MemberInit:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 77&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMemberInit((MemberInitExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 78&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 79&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.New:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 80&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitNew((NewExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 81&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 82&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.NewArrayInit:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 83&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.NewArrayBounds:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 84&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitNewArray((NewArrayExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 85&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 86&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.Parameter:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 87&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitParameter((ParameterExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 88&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 89&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionType.TypeIs:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 90&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitTypeIs((TypeBinaryExpression)exp);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 91&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt; 92&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 93&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Exception(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Unhandled expression type: '{0}'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, exp.NodeType));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 94&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 95&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; MemberBinding VisitBinding(MemberBinding binding)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 96&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 97&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (binding.BindingType)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 98&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 99&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; MemberBindingType.Assignment:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMemberAssignment((MemberAssignment)binding);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; MemberBindingType.MemberBinding:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMemberMemberBinding((MemberMemberBinding)binding);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; MemberBindingType.ListBinding:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitMemberListBinding((MemberListBinding)binding);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;default&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Exception(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Unhandled binding type '{0}'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, binding.BindingType));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; ElementInit VisitElementInitializer(ElementInit initializer)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt;             ReadOnlyCollection&amp;lt;Expression&amp;gt; readOnlyCollection = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitExpressionList(initializer.Arguments);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (readOnlyCollection !=&lt;span style="color: #000000;"&gt; initializer.Arguments)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.ElementInit(initializer.AddMethod, readOnlyCollection);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; initializer;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitUnary(UnaryExpression u)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(u.Operand);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression !=&lt;span style="color: #000000;"&gt; u.Operand)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.MakeUnary(u.NodeType, expression, u.Type, u.Method);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; u;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;130&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitBinary(BinaryExpression b)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;131&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;132&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(b.Left);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;133&lt;/span&gt;             Expression expression2 = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(b.Right);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;134&lt;/span&gt;             Expression expression3 = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(b.Conversion);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;135&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression == b.Left &amp;amp;&amp;amp; expression2 == b.Right &amp;amp;&amp;amp; expression3 ==&lt;span style="color: #000000;"&gt; b.Conversion)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;136&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;137&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;138&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;139&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (b.NodeType == ExpressionType.Coalesce &amp;amp;&amp;amp; b.Conversion != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;140&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;141&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; Expression.Coalesce(expression, expression2, expression3 &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; LambdaExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;142&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;143&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.MakeBinary(b.NodeType, expression, expression2, b.IsLiftedToNull, b.Method);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;144&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;145&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitTypeIs(TypeBinaryExpression b)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;146&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;147&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(b.Expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;148&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression !=&lt;span style="color: #000000;"&gt; b.Expression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;149&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;150&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.TypeIs(expression, b.TypeOperand);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;151&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;152&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; b;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;153&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;154&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitConstant(ConstantExpression c)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;155&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;156&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;157&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;158&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitConditional(ConditionalExpression c)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;159&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;160&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(c.Test);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;161&lt;/span&gt;             Expression expression2 = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(c.IfTrue);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;162&lt;/span&gt;             Expression expression3 = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(c.IfFalse);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;163&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression != c.Test || expression2 != c.IfTrue || expression3 !=&lt;span style="color: #000000;"&gt; c.IfFalse)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;164&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;165&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.Condition(expression, expression2, expression3);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;166&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;167&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; c;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;168&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;169&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitParameter(ParameterExpression p)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;170&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;171&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; p;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;172&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;173&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitMemberAccess(MemberExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;174&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;175&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(m.Expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;176&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression !=&lt;span style="color: #000000;"&gt; m.Expression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;177&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;178&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.MakeMemberAccess(expression, m.Member);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;179&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;180&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;181&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;182&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitMethodCall(MethodCallExpression m)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;183&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;184&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(m.Object);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;185&lt;/span&gt;             IEnumerable&amp;lt;Expression&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitExpressionList(m.Arguments);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;186&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression != m.Object || enumerable !=&lt;span style="color: #000000;"&gt; m.Arguments)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;187&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;188&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.Call(expression, m.Method, enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;189&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;190&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; m;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;191&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;192&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt; ReadOnlyCollection&amp;lt;Expression&amp;gt; VisitExpressionList(ReadOnlyCollection&amp;lt;Expression&amp;gt;&lt;span style="color: #000000;"&gt; original)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;193&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;194&lt;/span&gt;             List&amp;lt;Expression&amp;gt; list = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;195&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;196&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; count =&lt;span style="color: #000000;"&gt; original.Count;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;197&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (i &amp;lt;&lt;span style="color: #000000;"&gt; count)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;198&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;199&lt;/span&gt;                 Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(original[i]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;200&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (list != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;201&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;202&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    list.Add(expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;203&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;204&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;205&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;206&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression !=&lt;span style="color: #000000;"&gt; original[i])&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;207&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;208&lt;/span&gt;                         list = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; List&amp;lt;Expression&amp;gt;&lt;span style="color: #000000;"&gt;(count);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;209&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; j = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;; j &amp;lt; i; j++&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;210&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;211&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            list.Add(original[j]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;212&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;213&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        list.Add(expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;214&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;215&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;216&lt;/span&gt;                 i++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;217&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;218&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (list != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;219&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;220&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; list.AsReadOnly();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;221&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;222&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; original;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;223&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;224&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; MemberAssignment VisitMemberAssignment(MemberAssignment assignment)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;225&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;226&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(assignment.Expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;227&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression !=&lt;span style="color: #000000;"&gt; assignment.Expression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;228&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;229&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.Bind(assignment.Member, expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;230&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;231&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; assignment;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;232&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;233&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;234&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;235&lt;/span&gt;             IEnumerable&amp;lt;MemberBinding&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitBindingList(binding.Bindings);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;236&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (enumerable !=&lt;span style="color: #000000;"&gt; binding.Bindings)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;237&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;238&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.MemberBind(binding.Member, enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;239&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;240&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; binding;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;241&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;242&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; MemberListBinding VisitMemberListBinding(MemberListBinding binding)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;243&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;244&lt;/span&gt;             IEnumerable&amp;lt;ElementInit&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitElementInitializerList(binding.Initializers);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;245&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (enumerable !=&lt;span style="color: #000000;"&gt; binding.Initializers)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;246&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;247&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.ListBind(binding.Member, enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;248&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;249&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; binding;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;250&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;251&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt; IEnumerable&amp;lt;MemberBinding&amp;gt; VisitBindingList(ReadOnlyCollection&amp;lt;MemberBinding&amp;gt;&lt;span style="color: #000000;"&gt; original)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;252&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;253&lt;/span&gt;             List&amp;lt;MemberBinding&amp;gt; list = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;254&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;255&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; count =&lt;span style="color: #000000;"&gt; original.Count;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;256&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (i &amp;lt;&lt;span style="color: #000000;"&gt; count)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;257&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;258&lt;/span&gt;                 MemberBinding memberBinding = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitBinding(original[i]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;259&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (list != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;260&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;261&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    list.Add(memberBinding);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;262&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;263&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;264&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;265&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (memberBinding !=&lt;span style="color: #000000;"&gt; original[i])&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;266&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;267&lt;/span&gt;                         list = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; List&amp;lt;MemberBinding&amp;gt;&lt;span style="color: #000000;"&gt;(count);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;268&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; j = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;; j &amp;lt; i; j++&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;269&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;270&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            list.Add(original[j]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;271&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;272&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        list.Add(memberBinding);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;273&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;274&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;275&lt;/span&gt;                 i++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;276&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;277&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (list != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;278&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;279&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; list;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;280&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;281&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; original;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;282&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;283&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt; IEnumerable&amp;lt;ElementInit&amp;gt; VisitElementInitializerList(ReadOnlyCollection&amp;lt;ElementInit&amp;gt;&lt;span style="color: #000000;"&gt; original)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;284&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;285&lt;/span&gt;             List&amp;lt;ElementInit&amp;gt; list = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;286&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;287&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; count =&lt;span style="color: #000000;"&gt; original.Count;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;288&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (i &amp;lt;&lt;span style="color: #000000;"&gt; count)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;289&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;290&lt;/span&gt;                 ElementInit elementInit = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitElementInitializer(original[i]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;291&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (list != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;292&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;293&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    list.Add(elementInit);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;294&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;295&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;296&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;297&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (elementInit !=&lt;span style="color: #000000;"&gt; original[i])&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;298&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;299&lt;/span&gt;                         list = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; List&amp;lt;ElementInit&amp;gt;&lt;span style="color: #000000;"&gt;(count);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;300&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; j = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;; j &amp;lt; i; j++&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;301&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;302&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            list.Add(original[j]);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;303&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;304&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        list.Add(elementInit);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;305&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;306&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;307&lt;/span&gt;                 i++&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;308&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;309&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (list != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;310&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;311&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; list;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;312&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;313&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; original;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;314&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;315&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitLambda(LambdaExpression lambda)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;316&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;317&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(lambda.Body);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;318&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (expression !=&lt;span style="color: #000000;"&gt; lambda.Body)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;319&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;320&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.Lambda(lambda.Type, expression, lambda.Parameters);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;321&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;322&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; lambda;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;323&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;324&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; NewExpression VisitNew(NewExpression nex)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;325&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;326&lt;/span&gt;             IEnumerable&amp;lt;Expression&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitExpressionList(nex.Arguments);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;327&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (enumerable ==&lt;span style="color: #000000;"&gt; nex.Arguments)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;328&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;329&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; nex;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;330&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;331&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (nex.Members != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;332&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;333&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.New(nex.Constructor, enumerable, nex.Members);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;334&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;335&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.New(nex.Constructor, enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;336&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;337&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitMemberInit(MemberInitExpression init)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;338&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;339&lt;/span&gt;             NewExpression newExpression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitNew(init.NewExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;340&lt;/span&gt;             IEnumerable&amp;lt;MemberBinding&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitBindingList(init.Bindings);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;341&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newExpression != init.NewExpression || enumerable !=&lt;span style="color: #000000;"&gt; init.Bindings)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;342&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;343&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.MemberInit(newExpression, enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;344&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;345&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; init;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;346&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;347&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitListInit(ListInitExpression init)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;348&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;349&lt;/span&gt;             NewExpression newExpression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitNew(init.NewExpression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;350&lt;/span&gt;             IEnumerable&amp;lt;ElementInit&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitElementInitializerList(init.Initializers);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;351&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (newExpression != init.NewExpression || enumerable !=&lt;span style="color: #000000;"&gt; init.Initializers)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;352&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;353&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.ListInit(newExpression, enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;354&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;355&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; init;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;356&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;357&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitNewArray(NewArrayExpression na)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;358&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;359&lt;/span&gt;             IEnumerable&amp;lt;Expression&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitExpressionList(na.Expressions);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;360&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (enumerable ==&lt;span style="color: #000000;"&gt; na.Expressions)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;361&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;362&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; na;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;363&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;364&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (na.NodeType ==&lt;span style="color: #000000;"&gt; ExpressionType.NewArrayInit)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;365&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;366&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.NewArrayInit(na.Type.GetElementType(), enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;367&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;368&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.NewArrayBounds(na.Type.GetElementType(), enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;369&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;370&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;virtual&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression VisitInvocation(InvocationExpression iv)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;371&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;372&lt;/span&gt;             IEnumerable&amp;lt;Expression&amp;gt; enumerable = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.VisitExpressionList(iv.Arguments);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;373&lt;/span&gt;             Expression expression = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Visit(iv.Expression);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;374&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (enumerable != iv.Arguments || expression !=&lt;span style="color: #000000;"&gt; iv.Expression)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;375&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;376&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expression.Invoke(expression, enumerable);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;377&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;378&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; iv;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;379&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;380&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;381&lt;/span&gt; }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;相关项目下载可以联系本人QQ;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2478024.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/05/01/2478024.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/05/01/DMSLinq.html</id><title type="text">DMSLinq表达式框架实现(一)</title><summary type="text">好久没有写东西了,不是自己不想写,是自己好像对语文描述能力确实有点差劲.进园子那么久也没有写过完全是自己的东西.都快用COPY,PARSTER用到极致了.也罢,就把最近用的东西写写吧.最近研究了一下LINQ表达式的一些编程方式,了解ExpressionVisitor类的主要功能及其实现.从而写了一个自己的LINQ框架,用LINQ的方式编程进而生成相应的SQL语句来达到访问数据库的目的.其写法类似于IEnumerable&lt;T&gt;的写法.下面是相关例子var person = DMS.Create&lt;Student&gt;().Join(DMS.Create&lt;Person&amp;gt</summary><published>2012-05-01T08:30:00Z</published><updated>2012-05-01T08:30:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/05/01/DMSLinq.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/05/01/DMSLinq.html"/><content type="html">&lt;p&gt;好久没有写东西了,不是自己不想写,是自己好像对语文描述能力确实有点差劲.进园子那么久也没有写过完全是自己的东西.都快用&lt;/p&gt;&lt;p&gt;COPY,PARSTER用到极致了.&lt;br /&gt;也罢,就把最近用的东西写写吧.&lt;br /&gt;最近研究了一下LINQ表达式的一些编程方式,了解ExpressionVisitor类的主要功能及其实现.从而写了一个自己的LINQ框架,用LINQ的方式编程&lt;/p&gt;&lt;p&gt;进而生成相应的SQL语句来达到访问数据库的目的.其写法类似于IEnumerable&amp;lt;T&amp;gt;的写法.下面是相关例子&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; person = DMS.Create&amp;lt;Student&amp;gt;().Join(DMS.Create&amp;lt;Person&amp;gt;(), (x, y) =&amp;gt; x.PersonID ==&lt;span style="color: #000000;"&gt; y.PersonID&lt;br/&gt;                , (x, y) &lt;/span&gt;=&amp;gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; { x.PersonID, x.Remark, x.StudentID, y.Name, y.Age });&lt;/div&gt;&lt;p&gt;调用 person.GetResultSql()&lt;/p&gt;&lt;p&gt;生成的Sql如下:&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t0&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;.&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;PersonID&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;,&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t0&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;.&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Remark&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;,&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t0&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;.&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;StudentID&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;,&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t1&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;.&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;,&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t1&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;.&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Age&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;FROM&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Student&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t0&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;INNER&lt;/span&gt; &lt;span style="color: #808080;"&gt;JOIN&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Person&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t1&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ON&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;br/&gt;(&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t0&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;.&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;PersonID&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;t1&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;.&lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;PersonID&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;) &lt;/div&gt;&lt;p&gt;下面是两个相关的类:&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt;  [TableMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Person&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, PrimaryKey = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PersonID&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, DefaultOrderBy = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; PersonID Desc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Person : BaseEntity&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;         [ColumnMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PersonID&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; PersonID { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;         [ColumnMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Name&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; Name { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;         [ColumnMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Age&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; Age { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; [TableMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Student&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, PrimaryKey = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;StudentID&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, DefaultOrderBy = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt; StudentID Desc&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Student : BaseEntity&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;         [ColumnMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;StudentID&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; StudentID { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;         [ColumnMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PersonID&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; PersonID { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;         [ColumnMapping(Name = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Remark&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)]&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; Remark { &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt;&lt;span style="color: #000000;"&gt;; }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;     }&lt;/div&gt;&lt;p&gt;这里建立Mapping主要是为确定列名和表名,当然我们也可以直接使用PropertyInfo.Name来进行替代..&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;List&amp;lt;DMS&amp;gt; list = new List&amp;lt;DMS&amp;gt;();&lt;br/&gt;            var a = DMS.Create&amp;lt;Person&amp;gt;()&lt;br/&gt;                  .Where(q =&amp;gt; q.PersonID == 0)&lt;br/&gt;                  .OrderBy(q =&amp;gt; q.Columns(q.PersonID));&lt;br/&gt;            list.Add(a);&lt;br/&gt;            var b = DMS.Create&amp;lt;Person&amp;gt;().Select(q =&amp;gt; q.Columns(q.Age, q.Name, q.PersonID));&lt;br/&gt;            list.Add(b);&lt;br/&gt;&lt;br/&gt;            var c = DMS.Create&amp;lt;Person&amp;gt;(false)&lt;br/&gt;                .Where(q =&amp;gt; q.Name.Like("123"))&lt;br/&gt;                .Select();&lt;br/&gt;&lt;br/&gt;            list.Add(c);&lt;br/&gt;&lt;br/&gt;            var d = DMS.Create&amp;lt;Person&amp;gt;()&lt;br/&gt;                .Join(DMS.Create&amp;lt;Student&amp;gt;()&lt;br/&gt;                , (x, y) =&amp;gt; x.PersonID == y.PersonID&lt;br/&gt;                , (x, y) =&amp;gt; new&lt;br/&gt;                {&lt;br/&gt;                    x.PersonID,&lt;br/&gt;                    x.Name,&lt;br/&gt;                    x.Age,&lt;br/&gt;                    y.Remark,&lt;br/&gt;                    y.StudentID,&lt;br/&gt;                    PersonID2 = y.PersonID&lt;br/&gt;                }).OrderBy(q =&amp;gt; q.OrderBy(q.PersonID.Desc())).Pager(5, 20);&lt;br/&gt;            list.Add(d);&lt;br/&gt;            foreach (DMS item in list)&lt;br/&gt;            {&lt;br/&gt;                Console.WriteLine(item.GetResultSql());&lt;br/&gt;            }&lt;br/&gt;            Console.ReadLine();&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/28674/2012050121040121.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;这些只是这个DMSLINQ的一些简单功能,DMSLinq还可以生成更复杂的SQL语句.这里就不再叙述了..哈哈..&lt;/p&gt;&lt;p&gt;后续文章将为您慢慢揭开DMSLinq的奥秘.....&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;相关项目下载可以联系本人QQ.因花的时间比较多在这块.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;因现在项目大部分还是3.5特此做了一个3.5版本的,调试了一上基本正常&lt;/p&gt;&lt;p&gt;帮助文档:&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;a title="DMSLinq CHMD帮助文档" href="http://files.cnblogs.com/kingkoo/KingNET.DMSFrame.DMSLinq3.5.7z" target="_blank"&gt;&lt;span style="color: #ff0000;"&gt;DMSLinq CHMD帮助文档&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;a href="http://files.cnblogs.com/kingkoo/DMSLinq.7z"&gt;DMSLinq 示例&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2477973.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/05/01/DMSLinq.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/03/07/2383172.html</id><title type="text">根据表中数据生成insert语句的存储过程</title><summary type="text">常用SQL</summary><published>2012-03-07T03:43:00Z</published><updated>2012-03-07T03:43:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/03/07/2383172.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/03/07/2383172.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('c0400e65-683f-4c7e-9e61-90863678732e')"&gt;&lt;div id="cnblogs_code_open_c0400e65-683f-4c7e-9e61-90863678732e" class="cnblogs_code_hide"&gt;&lt;span style="color: #0000ff;"&gt;create&lt;/span&gt;   &lt;span style="color: #0000ff;"&gt;proc&lt;/span&gt; spgeninsertsql (&lt;span style="color: #008000;"&gt;@tablename&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;varchar&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;256&lt;/span&gt;))&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;as&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;declare&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sql&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;varchar&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;8000&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;declare&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sqlvalues&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;varchar&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;8000&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sql&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt; (&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sqlvalues&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;values&lt;/span&gt; (&lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;select&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sqlvalues&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sqlvalues&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; cols &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; , &lt;span style="color: #808080;"&gt;+&lt;/span&gt; ,&lt;span style="color: #008000;"&gt;@sql&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sql&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; + name + &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt;, &lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;from&lt;/span&gt; &lt;br /&gt;      (&lt;span style="color: #0000ff;"&gt;select&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;case&lt;/span&gt; &lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; xtype &lt;span style="color: #808080;"&gt;in&lt;/span&gt; (&lt;span style="color: #800000; font-weight: bold;"&gt;48&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;52&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;56&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;59&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;60&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;62&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;104&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;106&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;108&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;122&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;127&lt;/span&gt;)                                &lt;br /&gt;                     &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;case&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;cast&lt;/span&gt;(&lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;varchar&lt;/span&gt;)&lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; xtype &lt;span style="color: #808080;"&gt;in&lt;/span&gt; (&lt;span style="color: #800000; font-weight: bold;"&gt;58&lt;/span&gt;,&lt;span style="color: #800000; font-weight: bold;"&gt;61&lt;/span&gt;)&lt;br /&gt;                     &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;case&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;cast&lt;/span&gt;(&lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;varchar&lt;/span&gt;)&lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;++&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;br /&gt;               &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; xtype &lt;span style="color: #808080;"&gt;in&lt;/span&gt; (&lt;span style="color: #800000; font-weight: bold;"&gt;167&lt;/span&gt;)&lt;br /&gt;                     &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;case&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;replace&lt;/span&gt;(&lt;span style="color: #808080;"&gt;+&lt;/span&gt; name&lt;span style="color: #808080;"&gt;+&lt;/span&gt;,,) &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;++&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; xtype &lt;span style="color: #808080;"&gt;in&lt;/span&gt; (&lt;span style="color: #800000; font-weight: bold;"&gt;231&lt;/span&gt;)&lt;br /&gt;                     &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;case&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt;n &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;replace&lt;/span&gt;(&lt;span style="color: #808080;"&gt;+&lt;/span&gt; name&lt;span style="color: #808080;"&gt;+&lt;/span&gt;,,) &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;++&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; xtype &lt;span style="color: #808080;"&gt;in&lt;/span&gt; (&lt;span style="color: #800000; font-weight: bold;"&gt;175&lt;/span&gt;)&lt;br /&gt;                     &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;case&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;cast&lt;/span&gt;(&lt;span style="color: #ff00ff;"&gt;replace&lt;/span&gt;(&lt;span style="color: #808080;"&gt;+&lt;/span&gt; name&lt;span style="color: #808080;"&gt;+&lt;/span&gt;,,) &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;( &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;cast&lt;/span&gt;(length &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;varchar&lt;/span&gt;)  &lt;span style="color: #808080;"&gt;+&lt;/span&gt; ))&lt;span style="color: #808080;"&gt;++&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; xtype &lt;span style="color: #808080;"&gt;in&lt;/span&gt; (&lt;span style="color: #800000; font-weight: bold;"&gt;239&lt;/span&gt;)&lt;br /&gt;                     &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;case&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;when&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; name &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt;n &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;cast&lt;/span&gt;(&lt;span style="color: #ff00ff;"&gt;replace&lt;/span&gt;(&lt;span style="color: #808080;"&gt;+&lt;/span&gt; name&lt;span style="color: #808080;"&gt;+&lt;/span&gt;,,) &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;( &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;cast&lt;/span&gt;(length &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;varchar&lt;/span&gt;)  &lt;span style="color: #808080;"&gt;+&lt;/span&gt; ))&lt;span style="color: #808080;"&gt;++&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #0000ff;"&gt;end&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; cols,name&lt;br /&gt;         &lt;span style="color: #0000ff;"&gt;from&lt;/span&gt; syscolumns  &lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;where&lt;/span&gt; id &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;object_id&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@tablename&lt;/span&gt;) &lt;br /&gt;      ) t &lt;br /&gt;&lt;span style="color: #0000ff;"&gt;set&lt;/span&gt; &lt;span style="color: #008000;"&gt;@sql&lt;/span&gt; &lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;select&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;into&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;+ @tablename + &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;]&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;left&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@sql&lt;/span&gt;,&lt;span style="color: #ff00ff;"&gt;len&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@sql&lt;/span&gt;)&lt;span style="color: #808080;"&gt;-&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;)&lt;span style="color: #808080;"&gt;+&lt;/span&gt;) &lt;span style="color: #808080;"&gt;+&lt;/span&gt; &lt;span style="color: #808080;"&gt;left&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@sqlvalues&lt;/span&gt;,&lt;span style="color: #ff00ff;"&gt;len&lt;/span&gt;(&lt;span style="color: #008000;"&gt;@sqlvalues&lt;/span&gt;)&lt;span style="color: #808080;"&gt;-&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;4&lt;/span&gt;) &lt;span style="color: #808080;"&gt;+&lt;/span&gt; ) &lt;span style="color: #0000ff;"&gt;from&lt;/span&gt; &lt;span style="color: #808080;"&gt;+&lt;/span&gt;&lt;span style="color: #008000;"&gt;@tablename&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;--&lt;/span&gt;&lt;span style="color: #008080;"&gt;print @sql&lt;/span&gt;&lt;span style="color: #008080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;exec&lt;/span&gt; (&lt;span style="color: #008000;"&gt;@sql&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;go&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2383172.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/03/07/2383172.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353617.html</id><title type="text">每个好架构师都是一位出色的程序员</title><summary type="text">一个优秀的软件架构师，首先一定是一个出色的程序员，这是本篇文章的议题。从本文我们可以了解到一个架构师的工作是什么，他容易遇到的问题是什么，因此他为什么必须是一个出色的程序员。【独家特稿】架构师，听起来是如此神秘的一个称号。尤其是在开发领域刚入门不久的菜鸟级程序员眼中，架构师都是高手，都是牛人，都是如此高高在上的存在。不过，在搞了四、五年编程之后，程序员们往往早已失去了当年对这些“高级”职位的神秘感，甚至会对自己所在项目的架构师抱怨不已，背后里称他们是一群水王。所以有江南白衣曾撰文述说：“国内的架构师到了三十岁以后很多就往理论上跑，而国外的架构师在往上发展的同时保持下面的编程体验，所以国内多水王</summary><published>2012-02-16T01:54:00Z</published><updated>2012-02-16T01:54:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353617.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353617.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;一个优秀的软件架构师，首先一定是一个出色的程序员，这是本篇文章的议题。从本文我们可以了解到一个架构师的工作是什么，他容易遇到的问题是什么，因此他为什么必须是一个出色的程序员。&lt;/p&gt;&lt;p&gt;【独家特稿】架构师，听起来是如此神秘的一个称号。尤其是在开发领域刚入门不久的菜鸟级程序员眼中，架构师都是高手，都是牛人，都是如此高高在上的存在。&lt;/p&gt;&lt;p&gt;不过，在搞了四、五年编程之后，程序员们往往早已失去了当年对这些&amp;ldquo;高级&amp;rdquo;职位的神秘感，甚至会对自己所在项目的架构师抱怨不已，背后里称他们是一群水王。所以有江南白衣曾撰文述说：&amp;ldquo;国内的架构师到了三十岁以后很多就往理论上跑，而国外的架构师在往上发展的同时保持下面的编程体验，所以国内多水王，而国外则多大师。&amp;rdquo;&lt;/p&gt;&lt;p&gt;这就是我们今天这篇文章的论题：一个优秀的软件架构师，首先一定是一个出色的程序员。&lt;/p&gt;&lt;p&gt;这句话按照&lt;a href="http://developer.51cto.com/art/200912/168015.htm"&gt;Fred George先生&lt;/a&gt;的话来说，那就是&amp;ldquo;不编程的架构师的职业生涯是短暂的&amp;rdquo;。他说这句话的背景主要是针对有些架构师的设计与实现有断层的问题而言的，因为如果架构师不去实践，只是想当然的认为&amp;ldquo;没问题，这个想法能实现&amp;rdquo;，那么对于项目的落实而言是个很大的隐患。&lt;a href="http://developer.51cto.com/art/200912/169479.htm"&gt;支付宝架构师冯大辉&lt;/a&gt;也表示过，架构师是一个比较&amp;ldquo;虚&amp;rdquo;的岗位，主要的问题都在&amp;ldquo;落地&amp;rdquo;的过程中。&lt;/p&gt;&lt;p&gt;而一个架构师确认一个想法究竟能不能落地的最直接的方法，就是自己编写代码，尝试&amp;ldquo;实现一个系统最难实现的一部分&amp;rdquo;（Fred George）。看看Fred，他自己就是最好的示范：年纪一大把了，仍然每天都在编写代码。事实上，我们可以列举出一个长长的顶级架构师的列表，你会发现他们没有一个不是顶级的程序员。&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20091218/163629280.jpg" target="_blank"&gt;&lt;img class="fit-image" src="http://images.51cto.com/files/uploadimg/20091218/163629280.jpg" alt="我们可以列举出一个长长的顶级架构师的列表，你会发现他们没有一个不是顶级的程序员" width="347" height="346" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;span&gt;我们可以列举出一个长长的顶级架构师的列表，你会发现他们没有一个不是顶级的程序员&lt;/span&gt;&lt;/p&gt;&lt;p&gt;不过这在逻辑上或许没有多少说服力，因为似乎这并不能证明一位资深架构师凭自己的经验感觉不能够知道一个想法能不能落实。如果你觉得上面这些只是某些西方老头儿对编程的古怪癖好，那么不妨看看eBay的架构师&lt;a href="http://developer.51cto.com/art/200912/168851.htm"&gt;Randy Shoup先生&lt;/a&gt;是如何总结架构师在项目中的职责的：&lt;/p&gt;&lt;p&gt;1. 产品团队要做一个新产品，架构师开工了。架构师要帮助产品团队把可行性、技术需求以及权衡取舍等因素一一剖析清楚。&lt;/p&gt;&lt;p&gt;2. 技术需求出来了，架构师的主要工作开始了：设计整体的技术实现步骤。Randy在后面补充说&amp;ldquo;大多数成功的架构师都喜欢与其他团队成员一同完成架构和设计这一块的工作&amp;rdquo;，而认为自己应独自完成这个步骤则是新手架构师常见的误区。&lt;/p&gt;&lt;p&gt;3. 与开发团队一起，完成设计与实施的细节&lt;/p&gt;&lt;p&gt;4. 与开发团队和运维团队一起，完成部署的过程&lt;/p&gt;&lt;p&gt;5. 与运维团队一起，进行部署之后的维护和故障排除&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="tuij"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://developer.51cto.com/art/200911/165390.htm" target="_blank"&gt;充满荆棘的专家程序员之道&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.51cto.com/art/200912/167886.htm" target="_blank"&gt;独家专访王翔：坚持不懈是架构师人生第一&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.51cto.com/art/200912/169389.htm" target="_blank"&gt;浅析架构师工作流程及成功关键&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.51cto.com/art/200912/169854.htm" target="_blank"&gt;独家专访梁远华：架构师需要广泛的知识面&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.51cto.com/art/200912/169935.htm" target="_blank"&gt;Adobe架构师谈Scala：功能强大但令人困惑&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;在这个过程中，一个架构师至少有一半以上的工作是需要与开发团队一起进行的。按照Randy的描述，这是&amp;ldquo;一个架构师不能将实施细节抛之脑后&amp;rdquo;的体现。而且与开发团队一起工作，命令式的领导方式并不被推崇，一个架构师必须通过自己的个人影响力来对开发团队进行指导工作。而什么是影响力？说的直白一些，就是通过自己写代码以及和其他成员一起写代码，来指导团队成员实现每个架构细节的思路。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;只要稍微思考一下，就会明白此举的重要性。如果一个架构师靠命令管理开发团队，告诉他们&amp;ldquo;要实现这个模块&amp;rdquo;，&amp;ldquo;要实现那个功能&amp;rdquo;，而团队也尝试照办。可是或许是架构师的要求太高了，或许是团队的开发实力不够，团队成员便会向架构师求助：您看这个我们不知道如何实现，您能否指导一下？架构师可能知道怎么处理，也可能没有仔细思考过这个问题，但又觉得自己做大事者不拘泥于小节也，于是一皱眉头扔下一句：这是你们的事，你们自己解决！&lt;/p&gt;&lt;p&gt;然后就是矛盾的开始了。架构师只觉得团队技术不够，而团队则对架构师愈发不满。项目黄了不说，开发团队中也会传出各种说法，比如说&amp;ldquo;此君其实是个一行代码也不会写的大忽悠！&amp;rdquo;&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20091218/163852173.jpg" target="_blank"&gt;&lt;img class="fit-image" src="http://images.51cto.com/files/uploadimg/20091218/163852173.jpg" alt="架构师，你会写代码么？" width="343" height="318" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;综上所述，便映证了Fred的那句断言：&amp;ldquo;不编程的架构师的职业生涯是短暂的&amp;rdquo;。一个架构师不仅要会写代码，还必须要能够写出自己设计的系统中最难实现的那段代码。这样他才能够放心的把&amp;ldquo;落地&amp;rdquo;的这个重担交给开发团队来做。&lt;/p&gt;&lt;p&gt;让我用Fred的这句话做为本篇的总结：&amp;ldquo;一个架构师的价值在于，他不仅能看到系统的美，而且能够在建造系统的时候能够把这些美创造出来。&amp;rdquo;&lt;/p&gt;&lt;p&gt;是的，每个好架构师都是一位出色的程序员。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2353617.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353617.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353605.html</id><title type="text">面试的那些事(1)</title><summary type="text">前几日面试一家公司问到海量数据的问题.自己当时可能没有理解出什么意思,回答得不尽如意上网查了查资料,发觉网上的答案众多,有点笼统.现总结一下.1.建立相关聚合索引(查询字段用得较多)2.在数据库上面X表的某时间字段上进行分文件,分区,优化数据库结构3.至少也得具备常识性的数据库知道,如char比varchar查询快,char占用空间要varchar大(这个当然是以char没有填充满的情况)4.建立数据仓库(Data Warehouse),怎么建那可能要似数据库情况而定.列出相关文章:1.海量数据库解决方案2011050601</summary><published>2012-02-16T01:45:00Z</published><updated>2012-02-16T01:45:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353605.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353605.html"/><content type="html">&lt;p&gt;前几日面试一家公司问到海量数据的问题.自己当时可能没有理解出什么意思,回答得不尽如意&lt;/p&gt;&lt;p&gt;上网查了查资料,发觉网上的答案众多,有点笼统.现总结一下.&lt;/p&gt;&lt;p&gt;1.建立相关聚合索引(查询字段用得较多)&lt;/p&gt;&lt;p&gt;2.在数据库上面X表的某时间字段上进行分文件,分区,优化数据库结构&lt;/p&gt;&lt;p&gt;3.至少也得具备常识性的数据库知道,如char比varchar查询快,char占用空间要varchar大(这个当然是以char没有填充满的情况)&lt;/p&gt;&lt;p&gt;4.建立数据仓库(Data Warehouse),怎么建那可能要似数据库情况而定.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;列出相关文章:&lt;/p&gt;&lt;p&gt;1.&lt;a href="http://www.cnblogs.com/GoGoagg/archive/2011/05/06/2038520.html"&gt;海量数据库解决方案2011050601 &lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2353605.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353605.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353574.html</id><title type="text">关于jquery.placeholder使用的一些小BUG</title><summary type="text">相信很多朋友都用过jquery.placeholder.js这个插件,在使用中自己也碰到过这样的问题.就是如果有页面有 服务器LinkButton的时候,插件bind的submit方法就失效了,我是这样解决的,如果你有更好的解决方案一起探讨!$(".submitCal").bind('change', function() { $("[placeholder]").each(function() { var input = $(this); if (input.val() == input.attr("placeholder&amp;q</summary><published>2012-02-16T01:29:00Z</published><updated>2012-02-16T01:29:00Z</updated><author><name>kingkoo</name><uri>http://www.cnblogs.com/kingkoo/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353574.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353574.html"/><content type="html">&lt;p&gt;相信很多朋友都用过&lt;a href="http://www.cnblogs.com/kingkoo/admin/'http:/html5placeholder.codeplex.com/"&gt;jquery.placeholder.js&lt;/a&gt;这个插件,在使用中自己也碰到过这样的问题.就是如果有页面有 服务器LinkButton的时候,插件bind的submit方法就失效了,我是这样解决的,如果你有更好的解决方案一起探讨!&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;$(".submitCal").bind('change', function() {&lt;br/&gt;        $("[placeholder]").each(function() {&lt;br/&gt;            var input = $(this);&lt;br/&gt;            if (input.val() == input.attr("placeholder")) {&lt;br/&gt;                input.val("");&lt;br/&gt;            }&lt;br/&gt;        });&lt;br/&gt;    });&lt;br/&gt;    $(".submitLink").bind('click', function() {&lt;br/&gt;        $("[placeholder]").each(function() {&lt;br/&gt;            var input = $(this);&lt;br/&gt;            if (input.val() == input.attr("placeholder")) {&lt;br/&gt;                input.val("");&lt;br/&gt;            }&lt;br/&gt;        });&lt;br/&gt;    });&lt;br/&gt;&lt;/div&gt;&lt;p&gt;其实就是link点击的时候去验证文本框到底有没有填写值而已.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kingkoo/aggbug/2353574.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kingkoo/archive/2012/02/16/2353574.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
