基於Dapper的開源Lambda擴展LnskyDB 2.0已支持多表查詢

LnskyDB GitHub stars GitHub forks

LnskyDB是基於Dapper的Lambda擴展,支持按時間分庫分表,也能夠自定義分庫分表方法.並且能夠T4生成實體類免去手寫實體類的煩惱.git

文檔地址: https://liningit.github.io/LnskyDB/github

開源地址: https://github.com/liningit/LnskyDBapp

nuget地址: https://www.nuget.org/packages/LnskyDB/大數據

在此很是感謝SkyChenSky其中lambda表達式的解析參考了他的開源項目code

功能特色

  • Lambda表達式查詢方便
    基於Dapper的Lambda表達式擴展能夠方便的進行查詢篩選操做對象

  • 支持分庫分表
    默認支持按年分庫按月分表,也支持自定義分庫分表.今後大數據不用愁接口

  • T4自動生成實體
    有T4模板自動生成實體類,不再用手寫那些煩人的實體類了.倉儲類及接口也支持自動生成ci

  • 使用門檻低,快速上手
    使用很是簡單,能夠快速上手文檔

連表查詢

v2.0版本支持多表查詢了
步驟以下get

  1. 調用方法是經過IQuery.OuterJoin或者IQuery.InnerJoin進行連表查詢,返回IJoinQuery對象.
  2. 能夠調用IJoinQuery.And,Or進行條件過濾.調用Select返回ISelectResult.
  3. 經過倉儲的GetListGetPaging進行返回結果.
var repository = GetRepository();
var query = QueryFactory.Create<ProductSaleByDayNSEntity>(m => DBFunction.Function<DateTime>("ISNULL", m.UpdateDate, DateTime.Now) > new DateTime(2019, 6, 26));
var jq = query.InnerJoin(QueryFactory.Create<ShopEntity>(), m => m.ShopID, m => m.SysNo, (x, y) => new { Sale = x, Shop = y });
jq.And(m => m.Shop.ShopName.Contains("店鋪"));
jq.OrderByDescing(m => m.Sale.Sales + 1);
jq.OrderBy(m => m.Sale.ProductName + m.Sale.OutProductID);
jq.StarSize = 10;
jq.Rows = 5;
var res = jq.Select(m => m.Sale);
var paging = repository.GetPaging(res);
//也能夠下面這樣返回dto.第二個參數表示第一個表是否要查詢全部列.
var res2 = jq.Select(m => new PSDto { ShopName = m.Shop.ShopName }, true);
var paging2 = repository.GetPaging(res2);
var count = paging.TotalCount;
var lst = paging.ToList();//或者paging.Items
相關文章
相關標籤/搜索