分享一个 .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;
    
    	// 构造方法注入 ISqlSugarClient
    	public 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);
}	

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/685986.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【贡献度分析(帕累托图)】

文章目录 前言一、贡献度分析是什么&#xff1f;二、使用步骤1. 准备数据2. 排序数据3. 绘制帕累托图4. 分析结果5. 实际应用 三、示例代码 前言 贡献度分析也称为帕累托分析。它可以帮助我们理解数据集中各个因素对整体影响的程度&#xff0c;从而优先处理最重要的因素&#…

神奇的python语法

今天发现一个神奇的语法规则 import numpy as np aa np.zeros((4,3)) print(aa) print(aa .shape[0] * aa. shape[1])结果是不报错的 结果是正常运行的 包括在jupyter里面&#xff0c;这种写法还是没有报错

6.更复杂的光照

一、Unity的渲染路径 渲染路径决定了光照是如何应用到Unity Shader中的。我们需要为每个Pass指定它使用的渲染路径 如何设置渲染路径&#xff1f; Edit>Project Settings>Player>Other Settinigs>Rendering 如何使用多个渲染路径&#xff1f;如&#xff1a;摄像…

远程操作与监控:智能控制在航空电源车中的应用

航空交流插电式电源车是一种为航空设备提供稳定电源的移动电源设备。它通常由一个或多个交流电源模块和一个充电模块组成。交流电源模块提供稳定的电力&#xff0c;而充电模块则用于为电池充电&#xff0c;以便在需要时提供电力。 这种电源车通常用于机场、航空航天公司和其他…

知攻善防应急

知攻善防应急靶场一 小李在值守的过程中&#xff0c;发现有 CPU 占用飙升&#xff0c;出于胆子小&#xff0c;就立刻将服务器关机&#xff0c;并找你帮他分析&#xff0c;这是他的服务器系统&#xff0c;请你找出以下内容&#xff0c;并作为通关条件&#xff1a; 1.攻击者的 …

小朋友分糖果-第13届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第79讲。 小朋友分糖果&…

Apple开发者macOS设备与描述文件Profile创建完整过程

安装并打开Apple Configurator 新建描述文件 输入macOS平台的描述文件的相关信息,然后选择证书 选择一个可用证书 存储描述文件 存储成功如下: 使用文本编辑器打开刚才保存的描述文件,找到设备名与UDID

OrangePi Kunpeng Pro 开发板开箱体验

目录 一、操作系统和软件支持 &#xff08;一&#xff09;系统演示 &#xff08;二&#xff09;制作简易家庭音影平台 安装硬件 初始化硬盘 安装emby server 二、基础硬件方面 &#xff08;一&#xff09;接口介绍 &#xff08;二&#xff09;接口图示 三、对比分析 …

图像算法---自动曝光AE

一&#xff0c;自动曝光AE 自动曝光&#xff08;AE&#xff0c;全称Auto Exposure&#xff09;是一种在摄影和摄像中广泛使用的技术&#xff0c;它允许相机或摄像机根据环境光线条件自动调整曝光参数&#xff0c;以获得清晰、亮度适中的图像或视频。以下是关于自动曝光AE的详细…

无线和移动网络

背景 两个重要的挑战 无线&#xff1a;通过无线链路通信移动&#xff1a;需要网络处理移动&#xff08;不同变换所接入的网络&#xff09;用户 无线网络中的组件 无线主机&#xff08;无线并不总是意味着移动的&#xff09;基站&#xff08;base station 或者叫AP&#xff0…

Web自动化测试框架+PO模式分层实战(超细整理)

前言 PO模式 在UI级的自动化测试中&#xff0c;对象设计模式表示测试正在交互的web应用&#xff0c;程序用户界面中的一个区域&#xff0c;这个是减少了代码的重复&#xff0c;也就是说&#xff0c;如果用户界面发生了改变&#xff0c;只需要在一个地方修改程序就可以了。 优…

快速搭建rtsp server(Ubuntu)

在现代视频监控和实时视频流媒体应用中&#xff0c;实时流协议&#xff08;RTSP&#xff09;服务器扮演着至关重要的角色。无论是家庭安防系统、企业级监控还是流媒体服务&#xff0c;RTSP服务器都能提供高效、稳定的解决方案。然而&#xff0c;对于许多初学者或开发者来说&…

【自定义View】Android圆饼进度条

源码 自定义属性 <?xml version"1.0" encoding"utf-8"?> <resources><declare-styleable name"ArcProgressView"><attr name"android:textSize" /><attr name"bgBorderWidth" format"d…

优雅谈大模型10:MoE

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

【Python】教你彻底认识Python中的Web开发

​​​​ 文章目录 一、Web开发的基本概念1. Web服务器2. 客户端-服务器模型3. HTTP协议4. 前端与后端 二、常用的Web开发框架1. Django1.1 安装Django1.2 创建Django项目1.3 定义模型1.4 定义视图1.5 定义URL路由1.6 模板 2. Flask2.1 安装Flask2.2 创建Flask应用2.3 模板2.4…

组装服务器重装linux系统【idrac集成戴尔远程控制卡】

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

学习anjuke的过程

一、抓包 先看看12.25.1版本的APP是不是还能使用&#xff0c;如果还能使用我们就先破解低版本的。打开APP后发现还能正常使用&#xff0c;因为低版本的难度低我们就破解这个版本。低版本和高版本的算法是一样的&#xff0c;算法破解之后我们后续抓包替换接口就行了。手机安装上…

重生之 SpringBoot3 入门保姆级学习(17、整合SSM)

重生之 SpringBoot3 入门保姆级学习&#xff08;17、整合SSM&#xff09; 4、数据访问4.1 整合 ssm 4、数据访问 4.1 整合 ssm pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" …

哪吒监控+cfcdn+ 反代grp端口

哪吒监控cfcdn 反代grp端口 背景&#xff1a; 哪吒监控&#xff1a;感觉VPS线路不稳定&#xff0c;为了打消自己潜意识&#xff0c;希望量化延迟。 cfcdn&#xff1a;隐藏真实站点&#xff0c;保障小鸡隐秘安全 反代grpc端口: 反代grpc到支持https(TLS)的端口&#xff0c;这…