1. 语言类型及参考框架
.NET平台,C#语言,使用的框架是blogAdmin,不熟悉框架的可以去看看框架的东西
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;
}
注意:此处更改的位置为下图路径
更改完成后,直接在控制器中写代码,执行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用法看下面文档