分享一個 .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.pswp.cn/web/23476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23476.shtml
英文地址,請注明出處:http://en.pswp.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&#…