C#SqlSugar的简单使用
文章目录
- 1 版本信息
- 2 学习链接
- 3 工具类封装
- 3.1 OperaResult
- 3.2 SqlSugarHelper
1 版本信息
使用该类时需要在包管理器中 安装:sqlSugarCore 5.0.0
2 学习链接
本文章为了记录学习资料,当做笔记使用,不喜勿扰!
包含了所有SqlSugar的操作链接!
SqlSugar笔记,该部分是以前的文章
3 工具类封装
3.1 OperaResult
using System.Collections.Generic;namespace SqlSugarManage
{public class OperaResult{/// <summary>/// 操作结果/// </summary>public bool Success { get; set; }/// <summary>/// 整型返回值/// </summary>public int Result { get; set; }/// <summary>/// 异常信息/// </summary>public string ErrorMessage { get; set; }}public class OperaResult<T> : OperaResult{/// <summary>/// 数据/// </summary>public List<T> Data { get; set; }/// <summary>/// 当前页码/// </summary>public int PageIndex { get; set; }/// <summary>/// 每页条数/// </summary>public int PageSize { get; set; }/// <summary>/// 总记录数/// </summary>public int TotalCount { get; set; }/// <summary>/// 总页数/// </summary>public int TotalPages { get; set; }}}
3.2 SqlSugarHelper
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using SqlSugar;namespace SqlSugarManage
{/// <summary>/// SqlSugar帮助类类/// </summary>public class SqlSugarHelper{private SqlSugarClient db;public SqlSugarClient Db => db;/// <summary>/// 在构造函数中连接数据库/// </summary>public SqlSugarHelper(string datasource){string connStr = $"Data Source={datasource};";db = new SqlSugarClient(new ConnectionConfig{ConnectionString = connStr,//连接符字串DbType = DbType.Sqlite,//该项报发生冲突错误时,移除命名空间引入的冲突对象IsAutoCloseConnection = true,InitKeyType = InitKeyType.Attribute});}/// <summary>/// 生成实体类/// </summary>/// <param name="objectNames">表名,生成实体类的名称</param>/// <param name="path">生成实体类的目录</param>/// <param name="strNameSpace">实体类命名空间</param>public void CreateClassFile(string objectNames, string path, string strNameSpace){//生成 当前连接数据库所有数据表 的实体类db.DbFirst.CreateClassFile(path, strNameSpace);//生成 数据表名为objectNames参数值的数据表 的实体类db.DbFirst.Where(objectNames).CreateClassFile(path, strNameSpace);//生成 数据表名转换为小写后 以t开头的数据表 的实体类db.DbFirst.Where(it => it.ToLower().StartsWith("t")).CreateClassFile(path, strNameSpace);//生成 数据表名为objectNames参数值的数据表 的实体类并包含特性db.DbFirst.Where(objectNames).IsCreateAttribute().CreateClassFile(path, strNameSpace);//生成 数据表名为objectNames参数值的数据表 的实体类并包含默认值db.DbFirst.IsCreateDefaultValue().CreateClassFile(path, strNameSpace);}/// <summary>/// 创建数据表/// </summary>public void CreateTable<T>(){//创建GUID主键的数据表时,主键类型设置为Guid即可,无需添加特性,数据库中id类型表示为:uniqueidentifierdb.CodeFirst.InitTables(typeof(T));}/// <summary>/// 插入批量数据/// </summary>public OperaResult Insert<T>(List<T> list) where T : class, new(){if (list.Count > 10){try{db.BeginTran();foreach (var t in list){db.Insertable(t).ExecuteCommand();}db.CommitTran();return new OperaResult { Success = true };}catch (Exception ex){db.RollbackTran();return new OperaResult { ErrorMessage = ex.Message };}}else{var result = db.Insertable(list).ExecuteCommand();return new OperaResult{Success = result > 0,Result = result};}}/// <summary>/// 插入一条数据/// </summary>public void Insert<T>(T insertObj) where T : class, new(){var result = db.Insertable(insertObj).ExecuteCommand();}/// <summary>/// 删除表中所有数据/// </summary>public void DeleteAll<T>() where T : class, new(){var result = db.Deleteable<T>().ExecuteCommand();}/// <summary>/// 删除数据(删除符合条件的所有数据)/// </summary>public void Delete<T>(Expression<Func<T, bool>> expression) where T : class, new(){var result = db.Deleteable<T>().Where(expression).ExecuteCommand();}/// <summary>/// 更新数据(符合条件的数据修改为实例中参数信息)/// </summary>public void Update<T>(Expression<Func<T, T>> columns, Expression<Func<T, bool>> expression) where T : class, new(){var result = db.Updateable<T>().SetColumns(columns).Where(expression).ExecuteCommand();}/// <summary>/// 更新数据(符合条件的数据修改为指定参数信息)/// </summary>public void Update<T>(T t, Expression<Func<T, bool>> expression) where T : class, new(){var result = db.Updateable(t).Where(expression).ExecuteCommand();}/// <summary>/// 更新数据(根据主键修改数据)/// </summary>public void Update<T>(T t) where T : class, new(){var result = db.Updateable(t).ExecuteCommand();}/// <summary>/// 查询符合条件的元素数/// </summary>public int Count<T>(Expression<Func<T, bool>> expression = null){var queryable = db.Queryable<T>();return expression == null ? queryable.Count() : queryable.Count(expression);}/// <summary>/// 查询满足条件的所有数据/// </summary>public List<T> Query<T>(Expression<Func<T, bool>> expression = null){var queryable = db.Queryable<T>();if (expression != null){queryable.Where(expression);}return queryable.ToList();}/// <summary>/// 分页查询/// </summary>public OperaResult<T> QueryPage<T>(int pageIndex, int pageSize, Expression<Func<T, bool>> expression = null){var queryable = db.Queryable<T>();if (expression != null){queryable.Where(expression);}int totalNumber = 100, totalPage = 10;var list = queryable.ToPageList(pageIndex, pageSize, ref totalNumber, ref totalPage);return new OperaResult<T>{Success = list.Count > 0,Data = list,PageIndex = pageIndex,PageSize = pageSize,TotalPages = totalPage,TotalCount = totalNumber,ErrorMessage = list.Count > 0 ? null : "未获取到数据,请检查参数。"};}}}