情不知从何起,一往而情深
排名
6
文章
199
粉丝
4
评论
3
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

sqlsugar官方文档与基本用法,sqlsugar直接执行sql,sqlsugar分组函数。Sqlsugar官网。sqlsugar在直接执行sql中使用In。sqlsugar 返回第一行第一列。Sql分页

23540人阅读 2022/2/10 15:23 总访问:1181497 评论:0 收藏:0 手机
分类: sqlsugar

sqlsugar官方文档
https://www.donet5.com/Home/Doc


Sql分页
https://www.donet5.com/Home/Doc?typeId=1197


sqlsugar基本用法



下载依赖:

  1.   <ItemGroup>
  2.     <PackageReference Include="SqlSugarCore" Version="5.0.5.4" />
  3.   </ItemGroup>

使用:

  1.     class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             //创建数据库对象
  6.             SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
  7.             {
  8.                 ConnectionString = "Server=.;Database=OA;uid=sa;password=123456",
  9.                 DbType = DbType.SqlServer,
  10.                 IsAutoCloseConnection = true
  11.             });
  12.             db.Aop.OnLogExecuting = (sql, pars) =>
  13.             {
  14.                 Console.WriteLine(sql);//输出sql
  15.                 Console.WriteLine(string.Join(",", pars?.Select(it => it.ParameterName + ":" + it.Value)));//参数
  16.             };
  17.             //查询
  18.             List<Users> List = db.Queryable<Users>().Where(a=>a.Number.Contains("004")).ToList();
  19.             Console.ReadLine();
  20.         }
  21.     }

实体类:

  1.     public class Users
  2.     {
  3.         [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
  4.         public int Id { getset; }
  5.         public string UserName { getset; }
  6.         public string Number { getset; }
  7.     }


直接执行sql:

直接执行sql的官方文档:https://www.donet5.com/Home/Doc?typeId=1198

基础的查询

  1. var list = SqlSugarHelper.Db.Ado.SqlQuery<statisticsdataday>(sql,new { pubdate = "2022-8-1" }).ToList();

这样也可以:

  1. public List<CourseDTO> GetAllCourseByTeacher(string teacherId)
  2. {
  3.     string sql = @"select ID as CourseId,CourseName from education.course where id in (select CourseID from v_cmcourseteacher where teacherid = @teacherId) and CourseType = 1
  4.                         and TenantID = @TenantID";
  5.     List<SugarParameter> sugarParameters = new List<SugarParameter>(){
  6.         new SugarParameter("@teacherId",teacherId),
  7.         new SugarParameter("@TenantID",TenantID) //执行sql语句
  8.     };
  9.     List<CourseDTO> courseDTOs = Db.Ado.SqlQuery<CourseDTO>(sql, sugarParameters).ToList();
  10.     return courseDTOs;
  11. }

还可以这样,这样可以使用异步的形式:

  1. await Db.SqlQueryable<ScoreOther>(sql)
  2.      .AddParameters(new { StuId = stuId, STime = startDate, ETims = endDate })
  3.      .ToListAsync();



sqlsugar在直接执行sql中使用In

  1.         public List<LabTearchInfoDto> GetTearchInfoByCourseIdListAndStudentId(List<string> courseIdList, string studentId, int tenantID)
  2.         {
  3.             string sql = @"select TeacherID,CourseID from education.cmcourseteacher where CourseID in (@CourseID) and CMID
  4.                         in(select ID from education.classmajor where ClassID in
  5.                         (select ClassID from education.studentclass where Stats = 0 and StudentID = @StudentID and TenantID = @TenantID) )";
  6.             //sql = @"select TeacherID from education.cmcourseteacher where CourseID = '1a9b5c35f6ad47ddab639d39f4c02664' and CMID  in(select ID from education.classmajor where ClassID in  (select ClassID from education.studentclass where Stats = 0 and StudentID = '51399fc9cafc449092a0d0f90e6024af' and TenantID = 32) )";
  7.             List<LabTearchInfoDto> labTearchInfoDtos = Db.Ado.SqlQuery<LabTearchInfoDto>(sql, new { CourseID = courseIdList, StudentID = studentId, TenantID = tenantID }).ToList();
  8.             // 线下库没有配置教员信息,我直接模拟一下数据吧
  9.             //labTearchInfoDtos.Add(new LabTearchInfoDto() { TeacherID= "579cd78257eb4a32a22549b86bcb3f73" });
  10.             //labTearchInfoDtos.Add(new LabTearchInfoDto() { TeacherID = "b6393314ee084f7c8bc41aba11b33f06" });
  11.             return labTearchInfoDtos;
  12.         }



sqlsugar 返回第一行第一列
代码如下:

  1. string sql = @"select COUNT(labr.ID) Count from labtaskresult labr where labr.TenantID = @TenantID and labr.TaskType = 4 and  labr.LastUpdateTime>=@startDate
  2.             and labr.LastUpdateTime<@endDate";
  3. // 开始日期
  4. DateTime startDate = DateTime.Now.Date;
  5. // 结束时间等于今天加一天,因为时间取的是一个范围
  6. DateTime endDate = DateTime.Now.AddDays(1).Date;
  7. int completeCount = Db.Ado.SqlQuery<int>(sql, (new { stId = input.StdetailID, TenantID= input.TenantID, startDate = startDate, endDate = endDate })).FirstOrDefault();




分组函数:

  1. var listM = SqlSugarHelper.Db.Queryable<statisticsdata_month>().WhereIF(query.MajorID != 0, a => a.majorId == query.MajorID)
  2.                         .WhereIF(!string.IsNullOrWhiteSpace(query.RegLevelCode), a => a.levelCode.Contains(query.RegLevelCode))
  3.                         .SplitTable(stime, etime).GroupBy(a => a.pubDate).Select(a => new
  4.                         {
  5.                             pubDate = a.pubDate,
  6.                             reqCount = SqlSugar.SqlFunc.AggregateSum(a.reqCount),
  7.                             positionCount = SqlSugar.SqlFunc.AggregateSum(a.positionCount)
  8.                         }).OrderBy(a => a.pubDate, SqlSugar.OrderByType.Asc).ToList();



欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

EF Core sqlsugarFreesqlDapper EF 对比

EF Core优点:微软官方ORM功能强大,支持模式多文档齐全缺点:1.复杂查询生成的SQL语句性能太差(对操作功力要求高)2.一些...

sqlsugarScope与sqlsugarClient区别

SqlSugarScope原理它是对SqlSugarClient的封装让他支持线程安全,并且在不同上下文自动new 出 SqlSugarClient,在编写代码...

sqlsugar生成实体

添加依赖:&lt;ItemGroup&gt; &lt;PackageReference Include=&quot;SqlSugarCore&quot; Version=&quot;5.0.5.4&quot; ...

sqlsugar生成实体,sqlsugar生成Model

添加依赖:&lt;ItemGroup&gt; &lt;PackageReference Include=&quot;SqlSugarCore&quot; Version=&quot;5.0.0.15&quot;...

sqlsugar dbfirst 模型生成,实体生成

非常简单贴一下代码: //参数1:路径 参数2:命名空间。IsCreateAttribute 代表生成SqlSugar特性 db.DbFirst.IsCreateAt...

sqlsugar 对接mysql分表。sqlsguar分表注意事项。分表思路,通过日期获取分表表名等

官方文档:https://www.donet5.com/Home/Doc?typeId=1201 sqlsguar分表注意事项注意一:需要有一个分表字段,插入的时候...

sqlsugar 不映射字段,sqlsugar 忽略字段。sqlsugar字段不与数据库表映射,sqlsugar定义某属性不映射到数据库

利用特性SugarColumn,将IsIgnore设置为True即可! [SugarColumn(IsIgnore = true)] public string Token { get; set; }

vue elementui分页条使用与.net后台sqlsugar等分页方法使用。常用分页模板

分页条&lt;div style=&quot;margin-top: 20px;margin-bottom: 20px;text-align: center;&quot;&gt; &lt;el-pagination ...

.NET ORM核心功能之导航属性- EFCore和 sqlsugar 。sqlsugar 2023年导航新功能

[TOC]导航属性导航属性是作为.NET ORM核心功能中的核心,在SqlSugar没有支持导航属性前,都说只是一个高级DbHelper, 经过3...

sqlsugar in多字段linq 多字段查询多对多查询方式。 in and

sqlsugar in多字段版本&gt;=5.1.4.67-preview04 List&lt;OrderItem&gt; list=xxx; db.Queryable&lt;OrderItem&gt;().Wh...

基础领域驱动DDD框架搭建,配合sqlsugar基础架构搭建。使用仓储。.net使用Autofac实现自动注入。通过特性封装事务,特性实现工作单元

[TOC]一:创建一个WebApi项目随便取名一个,比如TeacherCertificationAPI效果如下: 顺便在appsettings.json中配置一下...

sqlsugar 树型递归查询。UtilMethods.BuildTree 用法

sqlsugar 树型递归查询官方文档:https://www.donet5.com/home/doc?masterId=1&amp;typeId=2311 UtilMethods.BuildTree ...

多对多的查询解析,sqlsugar 多对多的名称查询解析

多对多解析名称的常用步骤代码如下: #region 查询小组分配的管理员(一个小组可以分配多个管理员) List&lt;string&gt; ...

EF单表分组函数

单表分组函数linq写法://linq varquery=fromscoreinoae.Score groupscorebyscore.Subintogrouptemp selectnew { sub=g...

rabbitmq官网上六大版块之二(Direct类型交换机通过routingKey分类型输出)

其实rabbitmq,老师都说得差不多了,下面是老师的连接。http://www.tnblog.net/aojiancc2/article/UserCategory/134官网教...