【C#】SqlSugar:轻量、高效、灵活的 .NET ORM 框架

C# ORM模式之 SqlSugar使用 3、稳定性和技术支持: 虽然不是官方ORM, 但在稳定性上也是有着数年用户积累,如果遇到问题可以在GITHUB提出来,会根据紧急度定期解决;1、高性能:不夸张的说,去掉Sql在数据库执行的时间,SqlSugar是EF数倍性能,另外在批量操作和一对多查询上也有不错的SQL优化;MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓。2、高扩展性 :支持自定义拉姆达函数解析、扩展数据类型、支持自定义实体特性,外部缓存等;5、创新、持续更新 ,向下兼容。 阅读详情
AI摘要

本文详细介绍了SqlSugar这一.NET ORM框架。它支持多数据库,有链式操作和表达式支持,性能高效,代码简洁且扩展功能丰富。还阐述了在项目中使用它的步骤,包括安装、配置、创建实体类及进行CRUD等操作,适用于企业级应用、Web API开发等场景。

点关注开车不迷路

SqlSugar 是一个功能强大、使用简单的 .NET ORM(对象关系映射)框架。作为一个开源的 ORM 框架,SqlSugar 提供了与数据库交互的高效解决方案,支持各种数据库如 SQL Server、MySQL、Oracle、SQLite、PostgreSQL 等。它具有强大的查询功能、丰富的表达式支持,以及轻量级的特性,深受 .NET 开发者的青睐。

本文将详细介绍 SqlSugar 的功能、优势以及如何在 .NET 项目中使用它,并提供一些常用的示例代码,帮助开发者快速上手。

在这里插入图片描述

华丽的分割线


标题1

💯 SqlSugar 的主要特点

1. 多数据库支持

SqlSugar 支持多种主流数据库,包括 SQL Server、MySQL、SQLite、Oracle 和 PostgreSQL。这使得它非常适合需要跨平台、跨数据库开发的项目。通过 SqlSugar,开发者可以轻松地在不同数据库之间迁移而无需改动大量代码。

2. 链式操作和表达式支持

SqlSugar 提供了类似于 LINQ 的查询语法,支持链式操作和表达式树。开发者可以使用简洁的链式方法来构建查询、更新和插入操作,使代码更具可读性和可维护性。

3. 高效的性能

SqlSugar 的底层实现经过精心优化,能够处理大数据量的查询和复杂的 SQL 操作,同时保持较高的性能。相较于其他 ORM,SqlSugar 提供了更轻量化的性能表现,并在并发查询、批量操作等方面表现优异。

4. 代码优雅且简单

SqlSugar 致力于简化开发,避免了繁琐的 SQL 编写。其 API 设计直观,开发者可以通过简单易用的接口实现复杂的数据查询和操作。同时,它还支持生成 SQL 语句,便于开发者调试和优化查询。

5. 丰富的扩展功能

除了基本的 CRUD 操作,SqlSugar 还支持复杂的功能,如分页查询、事务管理、代码生成器、主从库分离、自动映射等。这些功能能够满足不同类型项目的需求,特别适合数据驱动的企业应用开发。


标题2

💯 如何在项目中使用 SqlSugar

1. 安装 SqlSugar

在开始使用 SqlSugar 之前,需要将其添加到 .NET 项目中。你可以通过 NuGet 包管理器来安装 SqlSugar:

Install-Package SqlSugar

2. 基础配置

在项目中,首先需要配置数据库连接。你可以通过 SqlSugarClient 类来初始化数据库连接。以下是一个简单的数据库配置示例:

using SqlSugar;

public class DbContext
{
    // SqlSugar 客户端
    public SqlSugarClient Db;

    public DbContext()
    {
        // 初始化数据库连接
        Db = new SqlSugarClient(new ConnectionConfig()
        {
            ConnectionString = "Server=.;Database=MyDb;Uid=myuser;Pwd=mypassword;",
            DbType = DbType.SqlServer,  // 指定数据库类型
            IsAutoCloseConnection = true // 自动关闭连接
        });

        // 控制台输出 SQL 语句,方便调试
        Db.Aop.OnLogExecuting = (sql, pars) =>
        {
            Console.WriteLine(sql); // 输出执行的 SQL
        };
    }
}

在此示例中,我们创建了 SqlSugarClient 实例,并通过 ConnectionConfig 类来配置数据库连接字符串和数据库类型。同时,通过 Aop.OnLogExecuting 输出 SQL 语句,便于开发者调试。

3. 创建实体类

SqlSugar 使用实体类来与数据库表进行映射。你可以通过简单的 POCO 类定义数据表结构:

public class User
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] // 主键和自增列
    public int Id { get; set; }
    
    public string Name { get; set; }
    
    public int Age { get; set; }
    
    [SugarColumn(IsNullable = true)] // 可为空列
    public string Email { get; set; }
}

这个 User 类定义了一个用户表,包含 Id、Name、Age 和 Email 字段。通过注解 SugarColumn,我们可以指定字段的属性,如主键、自增列和可为空等。

4. 基础 CRUD 操作

使用 SqlSugar,可以非常方便地进行 CRUD 操作。以下是一些常用的增、删、改、查操作示例:

插入数据
var dbContext = new DbContext();
var user = new User()
{
    Name = "John Doe",
    Age = 30,
    Email = "john@example.com"
};

// 插入单条记录
dbContext.Db.Insertable(user).ExecuteCommand();
查询数据
var dbContext = new DbContext();

// 查询所有用户
var allUsers = dbContext.Db.Queryable<User>().ToList();

// 查询单个用户
var singleUser = dbContext.Db.Queryable<User>().Where(u => u.Id == 1).Single();
更新数据
var dbContext = new DbContext();

// 更新指定用户的信息
var userToUpdate = new User { Id = 1, Name = "Jane Doe", Age = 28 };
dbContext.Db.Updateable(userToUpdate).ExecuteCommand();
删除数据
var dbContext = new DbContext();

// 删除指定用户
dbContext.Db.Deleteable<User>().Where(u => u.Id == 1).ExecuteCommand();

5. 分页查询

SqlSugar 提供了简洁的分页查询方法。以下是一个分页查询的示例,假设每页显示 10 条记录:

var dbContext = new DbContext();
int pageIndex = 1;
int pageSize = 10;
int totalCount = 0;

// 分页查询
var pagedUsers = dbContext.Db.Queryable<User>()
    .OrderBy(u => u.Id) // 根据 Id 排序
    .ToPageList(pageIndex, pageSize, ref totalCount);

Console.WriteLine($"总记录数: {totalCount}");
foreach (var user in pagedUsers)
{
    Console.WriteLine($"用户: {user.Name}, 年龄: {user.Age}");
}

6. 事务支持

SqlSugar 支持事务管理,确保数据操作的原子性。以下是一个使用事务的示例:

var dbContext = new DbContext();

try
{
    dbContext.Db.Ado.BeginTran(); // 开始事务

    // 插入一条记录
    dbContext.Db.Insertable(new User { Name = "Alice", Age = 25 }).ExecuteCommand();

    // 更新另一条记录
    dbContext.Db.Updateable(new User { Id = 2, Name = "Bob Updated", Age = 32 }).ExecuteCommand();

    dbContext.Db.Ado.CommitTran(); // 提交事务
}
catch (Exception ex)
{
    dbContext.Db.Ado.RollbackTran(); // 回滚事务
    Console.WriteLine($"发生错误: {ex.Message}");
}

在此示例中,所有的数据库操作都被包装在事务中,如果出现异常,事务会回滚以确保数据一致性。


标题3

💯 应用场景

  1. 企业级应用:SqlSugar 适用于需要与多种数据库打交道的企业级应用,特别是在需要快速处理 CRUD 操作和复杂 SQL 查询的场景中表现出色。

  2. Web API 开发:在构建 RESTful API 时,SqlSugar 提供了简单高效的 ORM 功能,帮助开发者快速实现数据交互和业务逻辑。

  3. 跨数据库项目:由于 SqlSugar 支持多种数据库类型,因此它非常适合需要在不同数据库之间迁移和扩展的项目。


标题4

📥 下载地址


SqlSugar 最新版 下载地址


标题5

💬 结语

SqlSugar 是一个轻量级且功能强大的 ORM 框架,它通过简单易用的 API 帮助 .NET 开发者高效地进行数据库操作。无论是基础的 CRUD 操作、复杂的查询,还是事务管理,SqlSugar 都能提供直观的解决方案。同时,它的多数据库支持和丰富的扩展功能使得它在企业级应用开发中具有广泛的应用场景。

如果你正在寻找一个高效、灵活的 .NET ORM 框架,SqlSugar 无疑是一个非常值得考虑的选择。


标题8

📒 参考文献


剩蛋快乐


愿者上钩

SqlSugar初体验|比EFCore更优秀 前言: 之前看微软的文档学了一会EFCore,当时觉得还不错,但是在工作中也没有使用。然后前段时间终于要答辩完了,也没有去总结,写点什么。反正趁作为学生身份最后的几天玩几天也无所谓了。 首先,SqlSugar的官网:https://www.donet5.com/ 官网有详细的文档,也有相关的论坛,如果有问题可以到里面讨论, 1.迁移与逆向迁移 在微软的文档中喜欢用这个词,其实意思就是把Model映射到数据库生成表。(建表) 反向迁移就是从数据库的表都读出来生成对应的Model 下面是一些和其他的框 阅读详情

相关推荐

SqlSugar:基于SQLSugar框架在 .Net环境中搭建PostgreSQL数据库访问、操作的框架,C#连接访问PostgreSQL数据库

本文描述了在.Net环境中使用SQLSugar框架连接及访问PostgreSQL数据库的详细操作过程,主要包括四个步骤:1 下载SqlSugar包 2 创建初始化并连接数据库工具类 3 创建数据操作类 4调用操作类访问数据库。

weixin_46540714的博客 7334

SqlSugar详解-国产ORM框架

OrderBy(it=>it.Id,OrderByType.Desc )// 倒序.First(it => it.sex == 1) //没有返回Null。

敲厉害的燕宝的博客 1万+

深入解析ORM技术及C#常用框架指南

​(Object-Relational Mapping,对象关系映射)是一种通过面向对象的方式操作关系型数据库的技术。它像一座桥梁,将面向对象编程语言(如C#)中的类与关系型数据库(如SQL Server、MySQL)的表结构进行映射,开发者无需直接编写SQL语句即可完成数据存取。

品质生活,极致编程。 1473

SqlSugar

SqlSugar 是一款 老牌 .NET 开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用最易上手的ORM框架。二.功能介绍1. 相比EF Core【学习成本低一天学会】 ,多库支持更好 ,在国内拥有不逊色EF Core 的【开源生态】2. 支持 .NET 百万级【大数据】写入和更新、分表和几十亿查询和统计等 拥有成熟方案3. 支持 完整的SAAS一套应用 跨库查询 、租户分库 、租户分表 和 租户数据隔离。

qq_71012549的博客 1万+

深入解析SqlSugar:.NET领域的高性能多数据库ORM框架

SqlSugar是一款高性能、多数据库支持的.NET ORM框架,以简单易用和卓越性能著称。它提供直观的API设计,支持链式编程和Lambda表达式,在复杂查询场景中比EF Core快35%-50%。其核心优势包括广泛的多数据库支持(主流+国产+时序库)、内置高性能批量操作、灵活的建表机制(CodeFirst/DbFirst)以及读写分离等高级功能。与主流ORM相比,SqlSugar在性能、易用性和多数据库兼容性方面表现突出,特别适合追求高性能的中小项目和国内企业应用。通过简洁的代码示例展示了快速上手流程,

guigenyi的专栏 883

实战指南:在.NET Core项目中高效运用SqlSugar ORM进行数据操作

本文是一份针对.NET Core开发者的SqlSugar ORM实战指南。详细介绍了SqlSugar在.NET Core项目中的环境搭建、CodeFirst与DbFirst两种开发模式、高效的CRUD操作、强大的LINQ式查询、事务处理以及性能调优等核心内容,帮助开发者快速掌握这一轻量高效的ORM框架,提升数据操作效率。

weixin_29300241的博客 329

【开篇必看】.NET开源 ORM 框架 【SqlSugar系列】

💦1. 什么是ORM?对象-关系映射(,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。2. 为什么使用ORM?

李赛赛的专栏 1910

FreeSql对比SqlSugar:在Sqlite本地缓存场景下的ORM选型指南(附性能测试数据)

本文针对Sqlite本地缓存场景,详细对比了FreeSql与SqlSugar两大C# ORM框架。通过性能测试、开发体验、Code First模式及高级特性等多维度分析,为边缘计算、移动应用等资源受限环境下的ORM选型提供实战指南与数据参考。

terraform7cloud的博客 624

目前的.NET(C#)世界里,有哪些主流的ORM--SqlSugar,Dapper,Entity Framework(EF)还是...

在以前的一篇文章中,为大家分享了《什么是ORM?为什么用ORM?浅析ORM的使用及利弊》。那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper,Entity Framework(EF)还是ServiceStack.OrmLite?或者是你还有更好的ORM推荐呢? 如果有的话,不防也一起分享给大家。 .NET(C#)主流ORM总揽 今天这篇文章分享几款...

WEST911的专栏 1941

SqlSugar框架实战:高性能ORM与C#数据访问优化

ORM(对象关系映射)作为数据库访问的核心技术,通过将数据库表映射为编程语言中的对象,显著提升开发效率。其底层原理基于表达式树解析和SQL生成,在保证类型安全的同时实现高性能数据操作。SqlSugar作为C#生态中的轻量级ORM框架,凭借独特的Lambda表达式解析引擎和分层架构设计,在查询性能上比EF Core快1.5-2倍,特别适合处理高并发场景和复杂报表查询。结合Redis二级缓存可提升吞吐量8-10倍,而批量插入优化技巧能有效应对海量数据写入。在电商、金融等需要处理高频数据访问的场景中,SqlSug

weixin_33483304的博客 299

高效导航查询:.NET ORM 和 SqlSugar 的功能比较

本文将比较两个流行的.NET ORM工具:.NET ORM和SqlSugar,并重点关注它们在导航查询方面的功能和性能。如果需要更高级的ORM功能和广泛的数据库引擎支持,.NET ORM是一个不错的选择。在上面的示例中,我们使用.NET ORM执行了一个导航查询,从数据库中提取了所有用户及其相关的订单信息。方法,我们可以在一次查询中检索关联的对象,而无需进行额外的查询。在上面的示例中,我们使用SqlSugar执行了一个导航查询,获取了所有用户及其相关的订单信息。

NauClojure的博客 276

深入理解SqlSugar ORM框架的使用与实战

详细讲解SqlSugar ORM框架的基本概念、使用方法和实战技巧,通过实例代码的形式,让读者深入了解并掌握SqlSugar的使用。

qq_35320456的博客 2048

SqlSugar ORM框架:使用T4模板生成实体类的实战演示

本文还有配套的精品资源,点击获取 简介:SqlSugar是一个流行的轻量级ORM框架,用于简化.NET开发者的数据库操作。本演示项目“SqlSugar生成实体类Demo”详细介绍了如何通过T4模板自动化生成实体类,并执行基本的CRUD操作。演示包括T4模板技术介绍、SqlSugar的安装、数据库连接配置、T4模板的引入和编辑,以及通过T4模板自动生成实体类和进行数据库操作的...

weixin_34581040的博客 1785

SqlSugar实战指南:.NET Core中的ORM高效开发与T4模板应用

本文详细介绍了在.NET Core项目中使用SqlSugar ORM框架进行高效开发的全过程。通过实战演示,重点讲解了如何利用T4模板自动生成数据库实体类,从而极大提升开发效率。文章涵盖了从项目搭建、基础增删改查、查询构造器到多表关联、事务处理等核心内容,并提供了性能优化建议,是.NET开发者掌握SqlSugar与T4模板应用的实用指南。

ii567的博客 919

k8s重装1.28.2+calico+踩坑收集+InPlacePodVerticalScaling

它提供了从镜像构建(通过 Dockerfile)、镜像管理(上传、下载、存储等)、容器创建、运行、网络配置(可以为容器分配自定义的网络,如 bridge 网络、host 网络等)到容器编排(通过 Docker Compose 可以简单地编排多个容器的启动和关联关系)等一整套完整的解决方案。它的核心功能是启动和管理容器的生命周期。sudo apt update这个可以经常用,是来更新软件包的,它不下载,所以没风险,但是经常会报错,别问,问就是某种强大的力量,所以用镜像或者代理或者巴拉巴拉。

SsjjsS2019的博客 2553

京东风控算法工程师带你解读Action Model-精细化运营(上篇)

电影《蝴蝶效应》中,男主拥有回到童年改变过去的能力,虽然在剧中男主一次次穿越时空拯救世界,但由于他无法预见自己做出的抉择对未来产生的其他影响,最终还是没能阻止悲剧的发生。可见,一个好的决策需要衡量其对未来产生的影响。JDD风控算法团队本期为大家解惑最优决策难题的解决方法-Action Model。

JDD风控算法的博客 1917

SQLSugar 快速入门:从基础到实战查询与使用指南

SQLSugar是一款轻量级、高性能的.NET ORM框架,支持多种数据库。本文全面介绍了SQLSugar的使用方法,包括环境搭建、初始化配置、实体类映射、查询操作、CRUD实现、事务处理、缓存功能和代码生成器等核心内容。重点讲解了单表查询、多表联查、子查询等常见查询场景的实现方式,并提供了对应的SQL语句示例。文章还详细说明了新增、修改、删除等操作的最佳实践,以及手动事务和自动事务的处理方式。最后总结了连接管理、性能优化、实体类映射和查询优化等注意事项,帮助开发者高效安全地使用SQLSugar进行数据库操

百锦再的博客 2536

从标准到实战:详解IEC 61000-4-2下的ESD电路防护设计

本文深入解析IEC 61000-4-2标准下的ESD电路防护设计,从静电防护的基础原理到实战应用。详细介绍了接触放电与空气放电的区别、防护器件选型要点(如TVS管和压敏电阻)以及PCB布局的黄金法则,帮助工程师有效提升电子产品的抗静电能力,确保设备在严苛环境下的稳定运行。

weixin_33704234的博客 512

EF、Dapper、NHibernate等ORM框架的比较及优缺点

fds

曾经的曾经的博客 1754

在 ABAP Push Channel 里玩转 Detached Client:用 Attach Handle 把 WebSocket 连接交接给业务逻辑

摘要:本文介绍了ABAP Push Channels (APC)中的Detached Client技术,该技术通过将WebSocket连接建立与后续处理分离,实现更高效的实时通信。核心流程包括创建连接、使用connect_and_detach交接连接、以及通过attach handle重新附着发送消息。文章还探讨了PCP协议和AMC技术在企业级推送场景中的应用,并通过示例代码展示了Detached Client的具体实现方式。这种设计解决了传统轮询的资源浪费问题,特别适用于生产线监控、客服系统等需要服务端主

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2323

模型预测控制(MPC)解析(三):多输入多输出系统

本文为阅读笔记,仅供学习交流使用!!! 在之前的文章中,为了简单起见,以单输入单输出系统为例介绍了MPC控制的实现方法。因为使用的是状态空间方程作为系统模型,这种方法可以轻松的扩展到多输入多输出系统中。 ...

行者无疆的博客 1万+

SqlSugar 4.0 ORM框架的优势

为了未来能够更好的支持多库分布式的存储,并行计算等功能,将SqlSugar3.x全部重写,现有的架构可以轻松扩展多库。 源码下载: https://github.com/sunkaixuan/SqlSugar 1.性能 性能最好的ORM之一,具有超越Dapper的性能 ,走的是EMIT够构中间语言动态编译到程序集,完成高性能的实体绑定,达到原生水平。 测试方式用Realease模式,Re...

小广龙 2万+

1、电路分析知识全解析:从基础到实践应用

本博客全面解析电路分析知识体系,涵盖从基础的电压、电流、电阻概念到复杂的交流电路、瞬态分析和高级应用如滤波器与变压器等内容。适合电子技术专业学生和技术爱好者学习,提供详细的知识结构、学习路径、实践示例以及丰富的学习资源,包括计算机模拟工具Multisim和PSpice的使用指导。通过理论与实践结合,帮助学习者掌握电路分析的核心技能,为电子工程和电力系统等相关领域打下坚实基础。

iii12的专栏 159

C#常用类库-详解SqlSugar

SqlSugar是一款基于.NET的轻量级、高性能ORM框架,凭借“零配置、语法简洁、性能接近原生SQL、支持多种数据库、功能全面”的核心优势,成为国内.NET开发者最喜爱的ORM框架之一。它既具备EF Core的便捷性(无需手动编写SQL),又拥有Dapper的高性能,同时支持动态SQL、事务、分页、分表分库、导航属性、缓存等企业级必备功能,适配从简单项目到大型分布式系统的各类场景。

Amon的专栏 858

OpenLayers6入门,快速搭建Vue+OpenLayers地图脚手架项目

本章针对Vue初学者,对Vue不熟悉,甚至还不会Vue的入门学生读者。本章会详细讲解从环境到环境的各个步骤,再到使用脚手架快速生成项目,以及添加地图库依赖,编写简单的高德地图显示页面的。如果已有VUE项目或者熟悉VUE的读者可以不用看本章,直接添加ol依赖到VUE项目中即可。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 5441

《从理念到落地:Claude Code 在真实项目中的深度实践指南》基于 Anthropic 团队内部使用经验的扩展与深度解读,一篇面向工程团队的全面实践手册

Claude Code 支持通过# 创建新的 API 端点根据以下输入创建完整的 API 端点:资源名称:$ARGUMENTS请创建以下文件:1. `src/routes/{resource}.routes.ts` - 路由定义2. `src/controllers/{resource}.controller.ts` - 控制器3. `src/services/{resource}.service.ts` - 服务层。

AI天才研究院 484
上一篇: 【Python】Jet Bridge:快速构建内部工具和管理面板的高效解决方案
下一篇: 【Python】Curdling:Python 包管理的高效工具
@Unity打怪升级
博客等级 码龄2年 4273粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值