在 .NET 8 框架中使用 Web API 项目并通过引用 SqlSugar ORM 来操作数据库

在 .NET 8 框架中使用 Web API 项目并通过引用 SqlSugar ORM 来操作数据库,可以遵循以下步骤:

1. 准备工作
确保已安装 .NET 8 SDK 和 SqlSugar NuGet 包。
创建或打开现有的 Web Core API 项目。
安装 SqlSugar NuGet 包:

dotnet add package SqlSugar

2. 配置 SqlSugar
在 Web API 项目中配置 SqlSugar,通常需要以下几步:
2.1 添加 SqlSugar 配置到 appsettings.json
示例配置:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=TestDb;User Id=sa;Password=your_password;"
  }
}

2.2 在 Program.cs 中配置 SqlSugar

using SqlSugar;

var builder = WebApplication.CreateBuilder(args);

// 配置 SqlSugar
builder.Services.AddScoped<ISqlSugarClient>(sp =>
{
    var config = new ConnectionConfig
    {
        ConnectionString = builder.Configuration.GetConnectionString("DefaultConnection"),
        DbType = DbType.SqlServer, // 根据实际数据库类型修改,例如:MySql、PostgreSQL 等
        IsAutoCloseConnection = true
    };
    return new SqlSugarClient(config);
});

var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

3. 创建服务和控制器
3.1 创建数据模型
示例模型 User

public class User
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] // 主键和自增列
    public int Id { get; set; }

    public string Name { get; set; }
    public int Age { get; set; }
}

3.2 创建服务操作数据库
创建一个服务类,封装数据库操作:

using SqlSugar;

public class UserService
{
    private readonly ISqlSugarClient _db;

    public UserService(ISqlSugarClient db)
    {
        _db = db;
    }

    public async Task<List<User>> GetAllUsersAsync()
    {
        return await _db.Queryable<User>().ToListAsync();
    }

    public async Task AddUserAsync(User user)
    {
        await _db.Insertable(user).ExecuteCommandAsync();
    }
}

3.3 注入服务
Program.cs 中注册服务:

builder.Services.AddScoped<UserService>();

3.4 创建控制器
创建 UserController,处理前端请求:

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class UserController : ControllerBase
{
    private readonly UserService _userService;

    public UserController(UserService userService)
    {
        _userService = userService;
    }

    [HttpGet]
    public async Task<IActionResult> GetUsers()
    {
        var users = await _userService.GetAllUsersAsync();
        return Ok(users);
    }

    [HttpPost]
    public async Task<IActionResult> AddUser(User user)
    {
        await _userService.AddUserAsync(user);
        return Ok();
    }
}

4. 启动并测试 API
启动 Web API 项目:

dotnet run

使用 Postman 或其他工具访问:

  • GET /api/User:获取用户列表。
  • POST /api/User:添加新用户(需要在请求体中提供用户数据)。

5. 可选:集成 Swagger
Program.cs 中启用 Swagger 以方便测试:

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.MapControllers();
app.Run();

访问 http://localhost:5000/swagger 测试 API。

注意事项
SqlSugar 特性支持:SqlSugar 支持 CodeFirst 和 DbFirst,灵活选择。
事务支持:SqlSugar 提供丰富的事务支持,使用 _db.Ado.BeginTran() 等方法处理复杂操作。
数据库类型:确保正确选择数据库类型,例如 DbType.SqlServerDbType.MySql
通过上述步骤,您可以在 .NET 8 Web Core API 项目中顺利集成 SqlSugar ORM!

发布者:myrgd,转载请注明出处:https://www.object-c.cn/4714

Like (0)
Previous 2024年11月27日 下午3:49
Next 2024年11月27日 下午4:02

相关推荐

  • Unity 项目升级URP/HDRP渲染管线时如何解决材质丢失问题

    在 Unity 项目中升级到 URP(通用渲染管线) 或 HDRP(高清渲染管线) 后,材质丢失是一个常见问题。这通常是因为原来的材质或着色器不兼容新渲染管线,需要手动调整或重新配置。以下是详细的解决方法: 1. 理解渲染管线的变化 2. 自动转换材质(官方工具) Unity 提供了从 Built-in 渲染管线迁移到 URP 或 HDRP 的官方工具,可以…

    2024年11月25日
    00
  • wordpress 蜘蛛记录插件的功能记录网站的所有访问记录

    要在 WordPress 网站上实现类似的功能,通常你需要开发一个 WordPress 插件。以下是一步步创建一个插件的指南,它可以记录访问者的访问记录,区分搜索引擎蜘蛛,并保存访客的 IP 地址。 1. 创建插件目录和文件 2. 插件文件结构 插件的文件结构大概如下: 3. 编写插件代码 在 visitor-tracker.php 文件中,添加以下代码: …

    2024年11月22日
    00
  • 在进行 Java 单元测试时,遇到找不到类名的错误

    在进行 Java 单元测试时,遇到找不到类名的错误,通常是由于以下几个原因引起的。下面是一些常见问题及其解决方法:1. 类路径(Classpath)问题最常见的原因是编译后的类文件没有正确地包含在类路径中,或者类文件没有被正确加载到测试框架中。要解决这个问题,确保以下几点:解决方法:确认类是否存在:首先确保测试类和目标类都已经编译,并且在正确的目录中。检查 …

    2024年11月28日
    00
  • java中使用 Arrays.asList()新增报错问题解决方法

    Arrays.asList() 返回的是一个固定大小的列表。如果你尝试使用该列表进行添加、删除等修改操作,会抛出 UnsupportedOperationException 异常。这是因为 Arrays.asList() 返回的列表背后是一个数组,它的大小是固定的,不能进行动态修改。解决方法使用 ArrayList 包装 Arrays.asList() 的结…

    2024年12月2日
    00
  • C++ STL vector 类:动态数组的高效应用

    vector 是 C++ 标准库(STL)中最常用的容器之一,它提供了一个动态数组的实现,能够根据需要自动扩展或收缩。vector 是一个线性数据结构,具有高效的随机访问能力和动态扩展能力,广泛应用于需要频繁增删元素且对随机访问要求较高的场景。 1. vector 类简介 vector 是 C++ 标准模板库(STL)中提供的一种容器类,它类似于动态数组(d…

    2024年11月25日
    00
  • pywebview 页面请求数据总是报错:TypeError: Cannot read properties of undefined (reading ‘api’)

    pywebview 中的 TypeError: Cannot read properties of undefined (reading ‘api’) 错误通常意味着 JavaScript 代码试图访问一个未定义的对象或属性(如 api)。这种问题通常出现在 Python 与前端 JavaScript 交互时,可能是由于以下原因:可能的原因及解决方法:Jav…

    2024年11月27日
    00
  • Java 8 到 Java 17 的升级涉及一些关键变化

    JDK 8 升级到 JDK 17 指南Java 8 到 Java 17 的升级涉及一些关键变化,包括语言特性、API 更新和性能改进。以下是一些升级要点:语法和语言特性:记录类(Record Class):Java 14 引入了记录类,提供了一种简化创建不可变数据对象的方式。密封类(Sealed Classes):Java 15 引入了密封类,允许开发者限制…

    2024年11月27日
    00
  • 如何用pbootcmsAPI接口开发微信小程序UNIAPP

    使用 PbootCMS 的 API 接口结合 UniApp 开发微信小程序,可以实现高效的内容管理和展示。以下是一个完整的开发流程,包括 API 接口设置、小程序功能设计和开发细节。 1. 准备工作1.1 配置 PbootCMS API 接口PbootCMS 提供 API 功能,需在后台开启并配置:登录 PbootCMS 后台管理。前往 系统管理 -> AP…

    2024年11月28日
    00
  • Oracle中RegExp_Like 正则表达式函数的基本用法

    在 Oracle 数据库中,REGEXP_LIKE 是一个用于匹配正则表达式的函数。它通常用于检查一个字符串是否符合某个正则表达式的模式。它是 Oracle 正则表达式功能的一部分,允许你在 SQL 查询中使用正则表达式进行数据验证或过滤。 语法 示例 1. 基本使用 检查字符串是否符合给定的正则表达式模式。 此查询将查找 column_name 中仅包含字…

    2024年11月23日
    00
  • 2024 最新 Git 的安装与使用教程

    Git 是一个免费的分布式版本控制系统,是现代开发中必不可少的工具。以下是最新的 Git 安装与使用教程,涵盖了从安装到基础使用的全部内容。 一、Git 安装 1. Windows 系统 (1)下载安装 (2)安装步骤 (3)验证安装 打开命令行窗口(如 cmd 或 PowerShell),输入以下命令: 输出类似以下内容则表示安装成功: 2. macOS …

    2024年11月23日
    00
  • C语言中的操作符(Operators)对数据进行运算的符号

    C语言中的操作符(Operators)是对数据进行运算的符号,分为多种类型,支持从基本算术到复杂的逻辑操作。以下是C语言操作符的详解: 1. 算术操作符(Arithmetic Operators) 用于执行基本数学运算: 示例: 2. 关系操作符(Relational Operators) 用于比较两个值,结果为布尔值: 示例: 3. 逻辑操作符(Logic…

    2024年11月22日
    00
  • Python 的 json模块序列化数据从文件里读取出来或存入文件

    Python 的 json 模块用于处理 JSON 格式的数据,可以将 JSON 数据与 Python 数据结构之间相互转换。以下是具体用法,包括从文件读取 JSON 数据以及将数据写入文件: 1. 将 JSON 数据从文件中读取到 Python 数据结构 代码示例: 解析过程: 2. 将 Python 数据结构写入到文件中(序列化为 JSON) 代码示例:…

    2024年11月26日
    00
  • 在Spring 项目中使用 Spring AI 模块的教程

    Spring AI 是 Spring 项目中一个面向 AI 应用的模块,旨在通过集成开源框架、提供标准化的工具和便捷的开发体验,加速 AI 驱动应用程序的构建和部署。以下是 Spring AI 的一些常见功能和使用方法的详解。 1. 项目背景 Spring AI 主要用于: 2. 环境配置 前置条件 添加依赖 在 pom.xml 中添加以下依赖: 或者在 b…

    2024年11月24日
    00
  • uniapp基于vue3,element plus组件库以及axios通讯开发

    在 uniapp 前端开发中,使用 Vue3、Element Plus 组件库和 Axios 进行通讯是一种常见的组合。下面是一个简单的步骤和实践指南,帮助你更好地使用这些工具进行开发。1. 安装和配置 Vue3 和 Element Plus首先,确保你已经安装了 uniapp 项目,并且设置好相关依赖。在项目中,安装 Element Plus 组件库以便在…

    2024年11月27日
    00
  • Windows 系统中使用 VSCode 配置 C/C++ 开发环境教程

    在 Windows 系统中使用 VSCode 配置 C/C++ 开发环境,可以高效编写和调试代码。以下是详细步骤: 1. 安装必要工具 1.1 安装 VSCode 1.2 安装 C/C++ 编译器 推荐使用 MinGW-w64: 验证是否安装成功: 2. 安装 VSCode 插件 打开 VSCode 的扩展市场(Ctrl+Shift+X),搜索并安装以下插件…

    2024年11月26日
    00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信