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

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

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

      動態 Entity Framework 查詢[勿用]

      經過測試,此方法之所以可用,因為它用的是 IEnumerable 的擴展方法

      它的是先把查詢號的數據放到內存后再進行篩選的,所以性能極低,差好幾個數量級~

       

      所以,一般情況下,就不要用這個方法了

       

      ====================設想======================

      首先說一下我想實現什么:

      Entity Framework 可以說是一個很強大的DAL

      但是BLL中很多方法是可以復用和共用的

      比如:得到分頁列表

       

      有人會說Linq to Entity(以下簡稱Linq)中有分頁功能~

      但我更想把它做成一個函數,比如 Article.GetPage(1);  <==得到文章的第一頁

      而且這個函數還要共用,許多Model都需要用到這個函數

       

      所以如何把常用方法寫成一個函數?然后讓符合條件的Model調用呢?

       

      在T-SQL時代,這個很好解決,因為是拼接字符串,再加上c# 2.0中強大的泛型,可以很方便的實現以上功能(我已有一個成品,并應用在了一個項目中)

       

      但是在Entity Framework中怎么用?

      Entity Framework中的查詢不再是簡單的字符串拼接了(其實所謂簡單的字符串拼接反而帶來了很多麻煩)

       

      所以如何實現?

       

       

       

       

      ======================嘗試========================

      我先想到套用我原來的模式,利用泛型,但是卻遇到了問題,詳細的可以看一下博文

      傳送門:http://space.cnblogs.com/question/12490/

       

      有人給了我很好的回答,但是沒有解決問題,但就在剛才,一次偶然的嘗試,再加上那個回答,我想到了解決方案

       

       

       

       

       

      ===================小試牛刀=========================

       

          class Program
          {
              static void Main(string[] args)
              {
                  LegalAidEntities _db = new LegalAidEntities();
      
                  test<IUser>(_db.User);
      
                  Console.Read();
              }
      
              static public void test<T>(IEnumerable<T> e)
              {
                  PropertyInfo pro = typeof(T).GetProperty("id");
                  var q = from IUser t in e
                          where t.id==1
                          select t;
                  Console.Write(q.ToList().Count);
              }
      
          }
      
          public interface IUser
          {
              int id { get; set; }
          }
      

       

       

      以上是一個演示,關鍵點:
      1、自定義Model屬性接口,并在 Model1.Designer.cs 中繼承這個接口
      2、函數傳入的參數是 IEnumerable<T>
      這樣就可以實現動態的Linq查詢了~
      大致原理呢,就是 Queryable<T> 中的 Where 和 IEnumerable<T> 擴展方法 Where 的執行方式不同,所以可以
      具體的沒有源碼,也不知道具體的原理了
      posted @ 2010-03-12 05:31  Dozer  閱讀(1502)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲三区在线观看无套内射 | 日韩中文字幕人妻精品| 91精品91久久久久久| 国产午夜精品福利91| 精品少妇人妻av无码专区| 97人人添人人澡人人澡人人澡| 国产高清亚洲一区亚洲二区| 亚洲韩国精品无码一区二区三区| 亚洲午夜福利精品无码不卡| 免费萌白酱国产一区二区三区| 四虎国产精品成人免费久久 | 亚洲国产综合性亚洲综合性| 国产精品护士| 伊人久久大香线蕉AV网| 久久久久国产精品人妻| 国产gaysexchina男外卖| 中文字幕人妻精品在线| 亚洲欧美中文字幕日韩一区二区| 国产无遮挡裸体免费久久| 色噜噜一区二区三区| 国产av综合影院| 自偷自拍亚洲综合精品| 成年女人免费碰碰视频| 里番全彩爆乳女教师| 狠狠色综合久久狠狠色综合| 无码伊人久久大杳蕉中文无码| 国产精品一区二区久久毛片| 无码人妻一区二区三区av| 久久亚洲国产精品五月天| 深夜在线观看免费av| 爱性久久久久久久久| 狠狠色婷婷久久综合频道日韩| 亚洲男人成人性天堂网站| 国产精品无码成人午夜电影| 男男车车的车车网站w98免费| 亚洲综合久久国产一区二区| 亚洲一二三区精品美妇| 亚洲色大成永久WW网站| 国产精品一品二区三四区| 亚洲18禁一区二区三区| 国产一区二区黄色激情片|