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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看远程桌面端口,查看服务器的远程桌面端口的方法

如果你正在寻找一种方法来检查服务器的远程桌面端口&#xff0c;那么请务必按照以下步骤操作&#xff0c;以确保准确且安全地获取所需信息。这不仅是一个技术问题&#xff0c;更是一个关于效率和安全性的重要议题。 首先&#xff0c;你需要明确&#xff0c;远程桌面端口通常是…

回溯算法之递增子数列

题目&#xff1a; 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作递增序列的一种特殊情…

【数据结构与算法 | 二叉树篇】二叉树的前中后序遍历(迭代版本)

1. 前言 前文我们实现了二叉树前中后三种遍历方式的递归版本&#xff0c;非常简单. 接下来我们来实现一下其迭代版本. 2. 二叉树的前序遍历 (1). 题 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2…

语音技能云云接入通用平台

Cloud-to-Cloud(云云接入) 前言 项目地址&#xff1a;https://github.com/LeYunone/cloud-to-cloud 配置说明&#xff1a;https://leyunone.com/github-project/voice-cloud-cloud-config.html 注&#xff1a;学习测试以及使用请拉取 master 分支&#xff0c;release 是开发…

python pip 安装

如果您不确定pip的安装路径&#xff0c;可以通过以下命令来查询&#xff1a; pip show pip 这个命令会显示pip的详细信息&#xff0c;其中包括pip安装的路径。如果您想修改pip的默认安装路径&#xff0c;可以使用pip的"--target"参数指定目标路径&#xff0c;例如&a…

8.7k Star!Khoj:你的AI第二大脑、开源RAG Cop​​ilot、平替 MS Copilot与ChatGPT

原文链接&#xff1a;&#xff08;更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号&#xff01;&#xff09; 8.7k Star&#xff01;Khoj&#xff1a;你的AI第二大脑、开源RAG Cop​​ilot、平替 MS Copilot与ChatGPT &#x1f31f;你的AI第二大脑。…

zynq-7015启动分析及裸机BootLoader编写(未完待续)

使用lwip-tcp远程对QSPI进行更新、QSPI FLASH启动 W25Q128资料&#xff1a; W25Q128JV datasheet(1/78 Pages) WINBOND | 3V 128M-bit serial flash memory with dual/quad spi (alldatasheet.com) UG585资料&#xff1a; Zynq 7000 SoC Technical Reference Manual-UG585 翻译…

【ARFoundation自学05】人脸追踪(AR Face manager)实现

1. 修改摄像机朝向渲染方式-选中user 这个方式就会调用前置摄像头 2 创建 AR Session、XR Origin&#xff0c;然后在XR Origin上面添加组件 注意&#xff1a;XR Origin 老版本仍然叫 AR Session Origin 接下来在XR Origin上面添加AR Face Manager组件&#xff0c;如下图&am…

剧本杀市场仍在快速发展,剧本杀小程序成为了新的机遇

近年来&#xff0c;剧本杀一直是年轻人的娱乐游戏方式之一&#xff0c;剧本杀行业呈现出了井喷式发展的形势&#xff0c;成为了当下爆火的娱乐方式。目前&#xff0c;剧本杀行业拥有了完善的剧本资源和呈现方式&#xff0c;发展前景非常大。 根据当下的数据显示&#xff0c;剧…

NextJs 实现自定义点火操作

NextJs 实现自定义点火操作 前言实现自定义点火 前言 我希望在Nextjs 启动的时候&#xff0c;能够自定义实现一些项目的初始化逻辑&#xff0c;也可以说是一些点火操作&#xff0c;比如资源的加载&#xff0c;数据的初始化等操作。 实现自定义点火 我们可以在根目录下创建一…

Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41)

文章目录 Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41)1.开机动画的启动过程概述2.为什么设置了属性之后就会播放&#xff1f; Android 开机动画的启动过程BootAnimation(基于Android10.0.0-r41) 1.开机动画的启动过程概述 下面就是BootAnimation的重要部…

移动app测试重要性体现在哪些方面?专业app测试报告获取

移动app测试是指对手机应用进行各种测试和评估的过程&#xff0c;以确保应用的功能、性能和用户体验达到要求。在现代社会中&#xff0c;移动应用已经成为人们日常生活的一部分。无论是社交娱乐、购物支付还是工作学习&#xff0c;移动应用都发挥着不可替代的作用。因此&#x…

常微分方程 (ODE) 和 随机微分方程 (SDE)

常微分方程&#xff08;Ordinary Differential Equations, ODE&#xff09;和随机微分方程&#xff08;Stochastic Differential Equations, SDE&#xff09;是数学中描述系统动态行为的重要工具。它们有一些相似之处&#xff0c;但在处理随机性方面存在显著差异。 常微分方程…

Oracle数据库面试题-5

81. 请解释Oracle数据库中的自动空间重新压缩&#xff08;Automatic Space Recompression&#xff09;的概念。 Oracle 数据库中的自动空间重新压缩&#xff08;Automatic Space Recompression&#xff09; 自动空间重新压缩是 Oracle 数据库中的另一个重要特性&#xff0c;它…

Vue响应式系统分支切换与cleanup - 清除遗留的副作用函数

文章目录 前言分支切换与cleanup分支切换的问题依赖集合的收集cleanup的实现完整的代码展示 前言 本篇文章代码思路来自 Vue3.0 源码, 部分理解来源于霍春阳 《Vue.js设计与实现》这本书的理解, 感兴趣的小伙伴可以自行购买阅读。可以非常明确的感受到作者对 Vue 的深刻理解以及…

每天写java到期末考试(6.6)-java文件输入输出流实验

1、用字节流读写二进制文件 要求:用DataOutputStreamFileOutputStream类将1,2,…,100,这100个数字写入到文件 d:\out1.bin里,然后再用DatalnputStreamFilelnputStream类将d:\out1.bin的内读出来,并输出到屏幕上。 用DataOutputStreamFileOutputStream写入二进制数据时,直接调…

单元测试AIR原则:提升代码质量的秘密武器

文章目录 引言一、AIR原则1. Automatic&#xff08;自动化&#xff09;2. Independent&#xff08;独立性&#xff09;3. Repeatable&#xff08;可重复性&#xff09; 二、Automatic&#xff08;自动化&#xff09;三、Independent&#xff08;独立性&#xff09;四、Repeatab…

【MySQL】sql语句之表操作(上)

序言 在上一篇的数据库操作的内容中&#xff0c;学习了两种属性和常用的七种操作&#xff0c;学习是循序渐进的&#xff0c;库的操作学完了&#xff0c;就要开始学习表的操作了&#xff0c;而表可与数据强相关&#xff0c;比如DDL&#xff0c;即数据定义语言&#xff0c;DML&am…

DVWA-XSS(Stored)

Low 观察后端代码&#xff0c;对输入进行了一些过滤和转义。trim(string,charlist) 函数用于移除字符串两侧的空白字符或其他预定义字符&#xff0c;charlist 参数可以规定从字符串中删除哪些字符。stripslashes() 函数用于删除反斜杠。mysqli_real_escape_string() 函数用于对…

SAAS系统架构设计剖析

多租户数据隔离 用户担心数据安全性&#xff0c;也就是要做数据隔离&#xff0c;不允许 A 租户查到 B 租户的数据 1、软隔离 数据在一起&#xff0c;只不过带着租户 id 查询 在底层驱动 jar 上进行封装&#xff0c;强制带上租户 id 比如&#xff1a;MySQL、MQ、Redis&#…