<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Util應用程序框架公共操作類(十一):表達式生成器

        本篇介紹的表達式生成器,用于動態創建表達式。

        在Util項目Lambdas目錄中,添加ExpressionBuilder,代碼如下。

      using System;
      using System.Linq.Expressions;
      
      namespace Util.Lambdas {
          /// <summary>
          /// 表達式生成器
          /// </summary>
          public class ExpressionBuilder<TEntity> {
              /// <summary>
              /// 初始化表達式生成器
              /// </summary>
              public ExpressionBuilder() {
                  Parameter = Expression.Parameter( typeof( TEntity ), "t" );
              }
      
              /// <summary>
              /// 參數
              /// </summary>
              private ParameterExpression Parameter { get; set; }
      
              /// <summary>
              /// 獲取參數
              /// </summary>
              public ParameterExpression GetParameter() {
                  return Parameter;
              }
      
              /// <summary>
              /// 創建表達式
              /// </summary>
              /// <param name="property">屬性表達式</param>
              /// <param name="operator">運算符</param>
              /// <param name="value"></param>
              public Expression Create<T>( Expression<Func<TEntity, T>> property, Operator @operator, object value ) {
                  return Parameter.Property( Lambda.GetMember( property ) ).Operation( @operator, value );
              }
      
              /// <summary>
              /// 轉換為Lambda表達式
              /// </summary>
              /// <param name="expression">表達式</param>
              public Expression<Func<TEntity, bool>> ToLambda( Expression expression ) {
                  if ( expression == null )
                      return null;
                  return expression.ToLambda<Func<TEntity, bool>>( Parameter );
              }
          }
      }

        在Util.Tests測試項目中,添加ExpressionBuilderTest單元測試,代碼如下。

      using System;
      using System.Linq.Expressions;
      using Microsoft.VisualStudio.TestTools.UnitTesting;
      using Util.Lambdas;
      using Util.Tests.Samples;
      
      namespace Util.Tests {
          /// <summary>
          /// 測試表達式生成器
          /// </summary>
          [TestClass]
          public class ExpressionBuilderTest {
              /// <summary>
              /// 表達式生成器
              /// </summary>
              ExpressionBuilder<Test2> _builder;
      
              /// <summary>
              /// 測試初始化
              /// </summary>
              [TestInitialize]
              public void TestInit() {
                  _builder = new ExpressionBuilder<Test2>();
              }
      
              /// <summary>
              /// 創建表達式
              /// </summary>
              [TestMethod]
              public void TestCreate_Int() {
                  Expression<Func<Test2, int>> property = t => t.Int;
                  var expression = _builder.Create( property, Operator.Equal, 1 );
                  Expression<Func<Test2, bool>> expected = t => t.Int == 1;
                  Assert.AreEqual( expected.ToString(), _builder.ToLambda( expression ).ToString() );
              }
      
              /// <summary>
              /// 創建表達式
              /// </summary>
              [TestMethod]
              public void TestCreate_Int_Nullable() {
                  Expression<Func<Test2, int?>> property = t => t.NullableInt;
                  var expression = _builder.Create( property, Operator.Equal, 1 );
                  Assert.AreEqual( "t => (t.NullableInt == 1)", _builder.ToLambda( expression ).ToString() );
              }
          }
      }

       

        由于目前的功能比較簡單,所以只添加了兩個方法,后面需要的時候再擴展。

        準備工作已經就緒,下一篇可以介紹查詢條件及日期范圍、數值范圍條件封裝。

        .Net應用程序框架交流QQ群: 386092459,歡迎有興趣的朋友加入討論。

        謝謝大家的持續關注,我的博客地址:http://www.rzrgm.cn/xiadao521/

        下載地址:https://files.cnblogs.com/xiadao521/Util.2015.1.6.1.rar

      posted @ 2015-01-06 19:29  何鎮汐  閱讀(2197)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产欧美一区二区三区免费视频| 久久蜜臀av一区三区| 国产AV巨作丝袜秘书| 成人做受120秒试看试看视频| 少妇办公室好紧好爽再浪一点| 潮喷失禁大喷水无码| av色国产色拍| 国产乱码精品一区二区三| 精品少妇后入一区二区三区| 粗了大了 整进去好爽视频| 日韩熟女精品一区二区三区| 国产乱码1卡二卡3卡四卡5| 久久精品国产清自在天天线| 国产乱码精品一区二三区| 人妻少妇精品久久| 亚洲国产综合性亚洲综合性| 精品婷婷色一区二区三区| 色丁香一区二区黑人巨大| 中文字幕在线国产精品| 东方四虎在线观看av| 极品少妇的粉嫩小泬看片| 久久国产精品77777| 精品一区二区三区在线观看l| 国产欧美日韩综合精品一区二区 | 伊人春色激情综合激情网| 国产精品天天看天天狠| 亚洲色欲色欱WWW在线| 国产极品美女高潮抽搐免费网站| 亚洲经典在线中文字幕| 国产办公室秘书无码精品99| 18女下面流水不遮图| 午夜成年男人免费网站| 最新亚洲人成网站在线影院| 色偷偷av一区二区三区| 国产精品美女免费无遮挡| 亚洲人成电影网站色| 日韩乱码视频一区二区三区| 国产成人一区二区三区免费| 精品亚洲欧美无人区乱码| 欧美性xxxxx极品| 亚亚洲视频一区二区三区|