Sqlsugar原生使用方法(避免封装四层结构)

207 阅读1分钟

1. 语言类型及参考框架

.NET平台,C#语言,使用的框架是blogAdmin,不熟悉框架的可以去看看框架的东西

gitcode.com/gh_mirrors/…

2. 为什么要改动

前期在进行业务开发时,发现框架的封装查询方法,不够全面,很多查询方法没有进行封装,导致在使用高级查询时,需要自己进行二次封装,太麻烦

以下是一个联表查询,实际上框架没有自带,需要封装

var query5 = db.Queryable<Order>()
         .LeftJoin<Custom>((o,cus) => o.CustomId == cus.Id)//多个条件用&&
         .LeftJoin<OrderDetail> ((o,cus,oritem) => o.Id == oritem.OrderId)
         .Where(o => o.Id == 1)  
         .Select((o,cus,oritem) => new ViewOrder {Id=o.Id,CustomName = cus.Name })
         .ToList();  //ViewOrder是一个新建的类,更多Select用法看下面文档

如果更改以下框架,将能使用原生SqlSugar语句不就好了

3. 更新FrameSeed.cs文件

主要内容:增加引入依赖

private readonly I{ClassName}Services _{ClassName}Services;
            private readonly SqlSugarClient db;
            public {ClassName}Controller(I{ClassName}Services {ClassName}Services,ISqlSugarClient sqlSugarClient)
            {
               _{ClassName}Services = {ClassName}Services;
               db = sqlSugarClient as SqlSugarClient;
            }

注意:此处更改的位置为下图路径

20241006155806.png

更改完成后,直接在控制器中写代码,执行SqlSugar语句即可(此时的model层依然适用):

var query5 = db.Queryable<Order>() .LeftJoin<Custom>((o,cus) => o.CustomId == cus.Id)//多个条件用&& .LeftJoin<OrderDetail> ((o,cus,oritem) => o.Id == oritem.OrderId) .Where(o => o.Id == 1) .Select((o,cus,oritem) => new ViewOrder {Id=o.Id,CustomName = cus.Name }) .ToList(); //ViewOrder是一个新建的类,更多Select用法看下面文档