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

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

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

      Dapper.Lite 擴(kuò)展

      Dapper本身并不方便,需要搭配擴(kuò)展。Dapper是和具體的數(shù)據(jù)庫(kù)無(wú)關(guān)的,再封裝的話,不同數(shù)據(jù)庫(kù)代碼就不一樣了,Dapper.Lite以最小的代價(jià)支持最多的數(shù)據(jù)庫(kù),旨在簡(jiǎn)單易用、穩(wěn)定可靠。

      最近重構(gòu)并精簡(jiǎn)了Dapper.Lite,以及不依賴Dapper的版本LiteSql。這兩款ORM基本完工,自薦一下。

      Dapper.Lite是一款Dapper擴(kuò)展,單表查詢和SQL拼接查詢條件支持Lambda表達(dá)式,旨在為大家提供一款簡(jiǎn)單易用、穩(wěn)定可靠的ORM,支持Oracle、MSSQL、MySQL、PostgreSQL、SQLite、Access、ClickHouse等數(shù)據(jù)庫(kù)。

      它的特色有:

      1. 單表查詢支持Lambda
      List<SysUser> list = session.Queryable<SysUser>().Where(t => t.Id <= 20 && t.Remark.Contains("測(cè)試")).ToList();
      

      單表查詢不需要寫(xiě)SQL了。
      這次重構(gòu),連表查詢、子查詢等復(fù)雜功能都刪除了,減少出bug的可能。

      1. 以SQL為主,無(wú)論何種數(shù)據(jù)庫(kù),都是下面的寫(xiě)法,這是最常用的用法
        有的數(shù)據(jù)庫(kù)前綴是@符,有的是:符,但ClickHouse數(shù)據(jù)庫(kù)不一樣,寫(xiě)起來(lái)麻煩一點(diǎn),這里統(tǒng)一了。
        session的意思是一次數(shù)據(jù)庫(kù)會(huì)話,主要是為了數(shù)據(jù)庫(kù)事務(wù),如果沒(méi)有事務(wù),可以直接db.Sql
      List<SysUser> list = session.Sql("select * from sys_user where id <= @Id and remark like @Remark", 20, "%測(cè)試%").ToList<SysUser>(); //參數(shù)按順序來(lái),一兩個(gè)也不容易眼花
      

      List<SysUser> list = session.Sql("select * from sys_user where id <= @Id and remark like @Remark", new { Id = 20, Remark = "%測(cè)試%" }).ToList<SysUser>(); //參數(shù)多的話就這么寫(xiě)吧
      

      接著拼接:

      .Append("and name like @Name", "%測(cè)試%"); 
      
      1. SQL拼接查詢條件支持Lambda表達(dá)式
      List<KpTask> kpTaskList = await session
          .Sql<KpTask>(@"
            select t.*, m.model_start as ModelStart, m.model_end as ModelEnd
            from kp_task t
            left join kp_model m on m.model_id=t.model_id")
          .Where(t => t.IsDel == 0)
          .Where(t => new int?[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }.Contains(t.OpeType))
          .Where<KpModel>(m => m.ModelStart <= DateTime.Now && DateTime.Now <= m.ModelEnd)
          .ToListAsync();
      

      既然寫(xiě)SQL了,肯定是有缺點(diǎn)的,例如,表名改了,SQL也要改。
      Where條件寫(xiě)Lambda比寫(xiě)SQL方便一點(diǎn)。

      如果你打算用Dapper,并想找一款擴(kuò)展,不妨試試Dapper.Lite,即使有bug,Dapper.Lite的源碼是你能hold住的。

      源碼地址

      https://gitee.com/s0611163/Dapper.Lite

      https://github.com/0611163/Dapper.Lite

      posted @ 2023-11-03 12:07  0611163  閱讀(1333)  評(píng)論(6)    收藏  舉報(bào)
      主站蜘蛛池模板: 麻豆精品一区二区综合av| 亚洲欧洲色图片网站| 人妻系列无码专区69影院| 4399理论片午午伦夜理片| 亚洲高清WWW色好看美女| 一区二区免费高清观看国产丝瓜| 国产亚洲精品自在久久蜜TV| 中文字幕亚洲综合久久综合| 黄色国产精品一区二区三区| 亚洲日本精品一区二区| 波多野结衣av高清一区二区三区| 精品久久久久久国产| 国产在线中文字幕精品| 国产精品成人一区二区不卡 | 老色99久久九九爱精品| 精品乱码一区二区三四五区| 国产欧美va欧美va在线| 性欧美三级在线观看| 无码精品人妻一区二区三区中| 国产成人午夜福利在线播放| 精品999日本久久久影院| 察哈| 日韩精品 在线一区二区| 国产不卡一区二区四区| 中文字幕无码不卡在线| 精品粉嫩国产一区二区三区| 青青国产揄拍视频| 国产偷人妻精品一区二区在线| 欧美精品久久天天躁| 日韩乱码人妻无码中文字幕视频 | 成人亚洲一级午夜激情网| 亚洲精品无码AV人在线观看国产| 亚洲成色精品一二三区| 精品尤物TV福利院在线网站 | 亚洲中文字幕日产无码成人片| 国产精品久久蜜臀av| 蜜桃臀av在线一区二区| 国内精品大秀视频日韩精品| 国产乱码精品一区二三区| 高清国产亚洲精品自在久久| 日本视频一两二两三区|