分享一个 .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

相关文章

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

Springboot3 ResponseEntity 完全使用案例

《Springboot3ResponseEntity完全使用案例》ResponseEntity是SpringBoot中控制HTTP响应的核心工具——它能让你精准定义响应状态码、响应头、响应体,相比... 目录Spring Boot 3 ResponseEntity 完全使用教程前置准备1. 项目基础依赖(M

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数