首页 > 数据库 >C#如何使用SQLSugar进行数据库操作

C#如何使用SQLSugar进行数据库操作

时间:2024-09-18 11:54:48浏览次数:3  
标签:C# 数据库 db DbContext new public SQLSugar

在现代应用程序中,数据库操作是不可或缺的组成部分。SQLSugar是一个轻量级的ORM(对象关系映射)框架,能够帮助开发者以简单的方式进行数据库交互。本文将介绍如何在C#中使用SQLSugar进行数据库操作。

一、什么是SQLSugar?

SQLSugar是一个高性能、易于使用的ORM框架,支持多种数据库,包括SQL Server、MySQL、SQLite等。它的特点包括:

  • 灵活的LINQ查询
  • 自动生成数据迁移脚本
  • 丰富的数据库操作支持
  • 支持事务处理
  • 易于上手和配置

二、安装SQLSugar

在你的C#项目中使用SQLSugar,首先需要安装它。可以通过NuGet包管理器进行安装:

打开NuGet包管理器控制台,输入以下命令:

Install-Package SqlSugar

如果使用Visual Studio,可以右键单击项目,选择“管理NuGet程序包”,搜索“SqlSugar”并点击安装。

三、配置数据库连接

在使用SQLSugar之前,你需要设置数据库连接。我们可以创建一个DbContext类,用于封装数据库连接和操作。

using SqlSugar;

public class DbContext
{
    public SqlSugarClient Db { get; private set; }

    public DbContext()
    {
        Db = new SqlSugarClient(new ConnectionConfig
        {
            ConnectionString = "your_connection_string", // 替换为你的连接字符串
            DbType = DbType.MySql, // 数据库类型
            IsAutoCloseConnection = true, // 是否自动关闭连接
        });
    }
}

四、定义实体类

接下来,你需要定义一个实体类,以便于与数据库进行映射。假设我们有一个用户表(Users),可以定义如下:

public class User
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] // 表示主键并且是自增
    public int Id { get; set; }
    
    public string Name { get; set; }
    
    public int Age { get; set; }
}

五、基本的CRUD操作

下面展示如何使用SQLSugar进行基本的CRUD(创建、读取、更新、删除)操作。

1. 创建(Insert)

public void AddUser(User user)
{
    using (var db = new DbContext())
    {
        db.Db.Insertable(user).ExecuteCommand();
    }
}

2. 读取(Select)

public List<User> GetAllUsers()
{
    using (var db = new DbContext())
    {
        return db.Db.Queryable<User>().ToList();
    }
}

3. 更新(Update)

public void UpdateUser(User user)
{
    using (var db = new DbContext())
    {
        db.Db.Updateable(user).ExecuteCommand();
    }
}

4. 删除(Delete)

public void DeleteUser(int id)
{
    using (var db = new DbContext())
    {
        db.Db.Deleteable<User>().Where(u => u.Id == id).ExecuteCommand();
    }
}

六、示例应用

下面是一个完整的示例应用,演示如何使用SQLSugar进行简单的用户管理:

class Program
{
    static void Main(string[] args)
    {
        var dbContext = new DbContext();
        
        // 添加用户
        var newUser = new User { Name = "Alice", Age = 30 };
        dbContext.AddUser(newUser);
        
        // 获取所有用户
        var users = dbContext.GetAllUsers();
        foreach (var user in users)
        {
            Console.WriteLine($"Id: {user.Id}, Name: {user.Name}, Age: {user.Age}");
        }
        
        // 更新用户
        newUser.Age = 31;
        dbContext.UpdateUser(newUser);
        
        // 删除用户
        dbContext.DeleteUser(newUser.Id);
    }
}

七、总结

通过本文,你已经掌握了如何在C#中使用SQLSugar进行数据库操作的基本技巧。SQLSugar的易用性和灵活性使得它成为许多开发者的首选ORM工具。

希望这篇文章能对你有所帮助,如果你在使用过程中遇到问题,欢迎留言交流!

标签:C#,数据库,db,DbContext,new,public,SQLSugar
From: https://blog.csdn.net/weixin_42249904/article/details/142260177

相关文章

  • Springboot环球视野网站92i41--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着全球化进程的加速,信息交流与文化传播日益频繁,公众对于国际时事、多元文化、全球经济动态的需求日益增长。环球视野网站旨在......
  • Springboot机械零件仓储管理系统a0pe2程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着工业化的快速发展,机械零件作为工业生产的基础组成部分,其仓储管理变得尤为重要。传统机械零件仓储管理方式存在效率低下、信......
  • 关系型数据库
    关系型数据库(RelationalDatabase,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。不支持Worker线程。关系......
  • Springboot基于HTML5+CSS3的信息化农村综合服务平台690g7
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着信息技术的飞速发展,信息化已成为推动农村经济社会发展的重要力量。构建基于HTML5+CSS3的信息化农村综合服务平台,旨在利用现......
  • MYSQL CHAR会补齐空格吗
    在MySQL中,CHAR 类型会自动补齐空格。当你插入一个短于定义长度的字符串时,MySQL会用空格填充到指定的长度。例如,如果你定义一个 CHAR(10) 字段,并插入一个长度为5的字符串,MySQL会将其存储为 “XXXXX   ”(后面有5个空格)。这种行为与 VARCHAR 类型不同,后者不会补齐......
  • 如何搭建Github图床(CDN加速)
    一、PicGoPicGo是一个用于快速上传图片并获取图片URL链接的工具PicGo原生支持七牛云腾讯云Github又拍云SM.MS阿里云OSSImgur等图床。官网地址:PicGoGithubRelease安装PicGo-Setup.exe二、获取Githubtoken首先需要创建一个Github仓库,选定为Public。获取Ac......
  • 数据库数据恢复—Oracle数据库打开报错“system01.dbf需要更多的恢复来保持一致性,数据
    Oracle数据库故障&检测:打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,无法通过备份去恢复数据库。恢复zxfg用户下的数据。出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据......
  • 仿QQ音乐(HTML+CSS) (1)
    ......
  • 设计方案:372-基于7VX690T的万兆光纤、双FMC扩展的综合计算平台 RISCV 芯片验证平台
    基于7VX690T的万兆光纤、双FMC扩展的综合计算平台RISCV芯片验证平台 一、板卡概述      基于V7的高性能PCIe信号处理板,板卡选用Xilinx 公司Virtex7系列FPGA 7VX690T-2FFG1761C为处理芯片,板卡提供两个标准FMC插槽,适用于高性能采集、回放以及相关处理。通过连接不同的FMC......
  • 学习高校课程-软件工程-软件的本质(ch1)
    1.1Softwareis:(1)instructions(computerprograms)thatwhenexecutedprovidedesiredfeatures,function,andperformance;执行时提供所需特征、功能和性能的指令(计算机程序)(2)datastructuresthatenabletheprogramstoadequatelymanipulateinformation使程......