分享一个 .Net core Console 项目使用 SqlSugar 的详细例子

2024-06-07 00:44

本文主要是介绍分享一个 .Net core Console 项目使用 SqlSugar 的详细例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

image

前言

SqlSugar 是一款老牌的 .NET 开源 ORM 框架,性能高,功能全面,使用简单,支持 .NET FrameWork、.NET Core3.1、.NET5、.NET6、.NET7、.NET8、.NET9 等版本,线上论坛非常活跃,今天给大伙分享一个 .Net core Console 项目使用 SqlSugar 的详细例子。

Step By Step 步骤

  1. 创建一个 .NET Core Console 项目

  2. 安装 SqlSugarCore Nuget 包,当前使用的是

    <PackageReference Include="SqlSugarCore" Version="5.1.4.69" />
    
  3. 在 Program.cs 中注入 SqlSuger(留意注释

    using SqlSugar;ServiceCollection services = new ServiceCollection();// 注入 单例 ISqlSugarClient
    services.AddSingleton<ISqlSugarClient>(s =>
    {SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig(){DbType = SqlSugar.DbType.MySql,ConnectionString = "server=localhost;port=3306;user=root;password=db123456;database=testdb",IsAutoCloseConnection = true,}, db =>{// 单例参数配置,所有上下文生效,如果不需要可注释掉db.Aop.OnLogExecuting = (sql, pars) =>{// 在日志里打印 sql 语句logger.LogInformation(sql);};});return sqlSugar;
    });
    
  4. 新建数据层文件 DaoUtil.cs,写 CRUD 代码(留意注释

    using SqlSugar;class DaoUtil
    {private readonly ISqlSugarClient db;// 构造方法注入 ISqlSugarClientpublic DaoUtil(ISqlSugarClient db){this.db = db;}/// <summary>/// 增加数据/// </summary>/// <param name="entity"></param>/// <returns></returns>public int InsertData(deviceData entity){var sql = @"INSERT INTO device_data (id,dev_type,dev_code,dev_name,item_name,item_xh,item_value,item_unit,item_alarm_level,deal_flag,create_time,create_by)VALUE (@id,@dev_type,@dev_code,@dev_name,@item_name,@item_xh,@item_value,@item_unit,@item_alarm_level,@deal_flag,@create_time,@create_by)";var parameters = new List<SugarParameter>(){new SugarParameter("@id",entity.id),new SugarParameter("@dev_type",entity.dev_type),new SugarParameter("@dev_code",entity.dev_code),new SugarParameter("@dev_name",entity.dev_name),new SugarParameter("@item_name",entity.item_name),new SugarParameter("@item_xh",entity.item_xh),new SugarParameter("@item_value",entity.item_value),new SugarParameter("@item_unit",entity.item_unit),new SugarParameter("@item_alarm_level",entity.item_alarm_level),new SugarParameter("@deal_flag",entity.deal_flag),new SugarParameter("@create_time",entity.create_time),new SugarParameter("@create_by",entity.create_by)};var result = db.Ado.ExecuteCommand(sql, parameters);return result;}
    }
    
  5. 在 Program.cs 中注入 DaoUtil 类,调用 CRUD 方法

    // 注入 DaoUtil 类
    services.AddScoped<DaoUtil>();// 调用 DaoUtil 的方法
    using (var sp = services.BuildServiceProvider())
    {var demo = sp.GetRequiredService<DaoUtil>();deviceData entity = new deviceData();demo.InsertData(entity);
    }	
    
  6. 运行程序进行测试

结语

  1. SqlSugar 执行原生 SQL 的功能非常强大,如果不用它的 ORM 功能,完全可以当成一个 ADOHelper 使用,是 EF Core 的一个很好的补充,我个人一般就是这么使用的。
  2. SqlSugar 的 ORM 的性能也很不错,如果不喜欢 EF Core,用用 SqlSugar 的 ORM 也不错。
  3. 注意 MySQL 参数在这里用的也是 @name 形式,而不是原生的 ? 符号

附录:完整的 Program.cs 代码

using SqlSugar;ServiceCollection services = new ServiceCollection();// 注入 单例 ISqlSugarClient
services.AddSingleton<ISqlSugarClient>(s =>
{SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig(){DbType = SqlSugar.DbType.MySql,ConnectionString = "server=localhost;port=3306;user=root;password=db.server!hx@123;database=hospital",IsAutoCloseConnection = true,}, db =>{// 单例参数配置,所有上下文生效,如果不需要可注释掉db.Aop.OnLogExecuting = (sql, pars) =>{// 在日志里打印 sql 语句logger.LogInformation(sql);};});return sqlSugar;
});// 注入 DaoUtil 类
services.AddScoped<DaoUtil>();// 调用 DaoUtil 的方法
using (var sp = services.BuildServiceProvider())
{var demo = sp.GetRequiredService<DaoUtil>();deviceData entity = new deviceData();demo.InsertData(entity);
}	

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。

这篇关于分享一个 .Net core Console 项目使用 SqlSugar 的详细例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037703

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁