当前位置: 首页 > news >正文

.NET Core Web API开发需引入的三个基本依赖配置说明

1.数据库依赖

1.1.包名

包名称

作用

Microsoft.EntityFrameworkCore

EF Core 核心库(提供数据库上下文、实体映射等基础能力)

Microsoft.EntityFrameworkCore.SqlServer

EF Core 针对 SQL Server 的驱动(让 EF 能连接 SQL Server)

Microsoft.EntityFrameworkCore.Tools

EF Core 工具库(提供

Add-Migration

Update-Database

等迁移命令)

1.2.配置

步骤 1:添加连接字符串(appsettings.json)

在 

appsettings.json 中添加 SQL Server 连接字符串:

{"ConnectionStrings": {"DefaultConnection": "Server=你的SQL Server地址;Database=你的数据库名;Trusted_Connection=True;TrustServerCertificate=True;"},"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*"
}
  • 替换 你的SQL Server地址(本地默认 localhost 或 ./SQLEXPRESS);
  • 替换 你的数据库名(需提前在 SQL Server 中创建数据库)。

步骤 2:注册 DbContext(Program.cs)

在 

builder.Services 中注册 EF Core 上下文(

AppDbContext):

var builder = WebApplication.CreateBuilder(args);// 注册 EF Core 上下文,关联 SQL Server 连接字符串
builder.Services.AddDbContext<AppDbContext>(options =>options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

步骤 3:定义 DbContext(Data/AppDbContext.cs)

确保 

Data 文件夹下的 

AppDbContext.cs 正确映射数据库表:

using Microsoft.EntityFrameworkCore;
using web01.Models;namespace web01.Data;public class AppDbContext : DbContext
{public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }// 映射数据库表(DbSet<实体> 对应表名)public DbSet<Dept> Depts { get; set; }public DbSet<Emp> Emps { get; set; }// 其他表(如 Clazz、Student)按此格式添加
}

步骤 4:初始化数据库(可选:开发时用)

若需自动创建 / 更新数据库 schema,可在 

Program.cs 中添加初始化逻辑:

var app = builder.Build();// 初始化数据库(开发环境用,生产环境注释)
using (var scope = app.Services.CreateScope())
{var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>();dbContext.Database.EnsureCreated(); // 确保数据库存在(仅创建新表,不更新已有表)// 或用迁移:dbContext.Database.Migrate(); // 应用所有未应用的迁移
}app.Run();

2.Swagger(接口文档)

2.1.包名

Swashbuckle.AspNetCore

2.2.配置

步骤 1:注册 Swagger 服务(Program.cs)

在builder.Services 中添加 Swagger 相关服务(默认项目可能已包含,需确认):

var builder = WebApplication.CreateBuilder(args);// 注册 Swagger 服务(默认已生成,确保存在)
builder.Services.AddEndpointsApiExplorer(); // 支持端点探索
builder.Services.AddSwaggerGen(options => {// 可选:配置 Swagger 文档信息(如标题、版本)options.SwaggerDoc("v1", new() { Title = "你的 API 名称", Version = "v1" });
});

步骤 2:启用 Swagger 中间件(Program.cs)

在中间件管道中启用 Swagger 页面和 JSON 文档:

var app = builder.Build();if (app.Environment.IsDevelopment())
{app.UseSwagger(); // 启用 Swagger JSON 文档app.UseSwaggerUI(options => {options.SwaggerEndpoint("/swagger/v1/swagger.json", "你的 API v1"); // 配置文档入口}); // 启用 Swagger UI 页面
}app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();

3.Serilog 日志

3.1.包名

Serilog.AspNetCore

3.2.配置

步骤 1:编写 Serilog 配置(Program.cs 顶部)

在 

Program.cs 最顶部添加日志配置(输出到控制台和每日滚动文件):

using Serilog;// 配置 Serilog(先于其他代码执行)
Log.Logger = new LoggerConfiguration().MinimumLevel.Information() // 最低日志级别(Debug/Info/Warn/Error/Fatal).WriteTo.Console() // 输出到控制台.WriteTo.File(path: "logs/app.log", // 日志文件路径rollingInterval: RollingInterval.Day, // 按天切割文件retainedFileCountLimit: 30, // 保留最近 30 天的日志outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}" // 日志格式).CreateLogger();var builder = WebApplication.CreateBuilder(args);

步骤 2:启用 Serilog(Program.cs)

在主机配置中启用 Serilog,替换默认日志系统:

var builder = WebApplication.CreateBuilder(args);// 启用 Serilog(关键:替换默认日志)
builder.Host.UseSerilog();

步骤 3:在代码中使用日志(示例:DeptController.cs)通过依赖注入 

ILogger 使用 Serilog:

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using web01.Data;
using web01.Models;namespace web01.Controllers;[Route("api/[controller]")]
[ApiController]
public class DeptController : ControllerBase
{private readonly ILogger<DeptController> _logger;private readonly AppDbContext _dbContext;public DeptController(ILogger<DeptController> logger, AppDbContext dbContext){_logger = logger;_dbContext = dbContext;}[HttpGet]public async Task<ActionResult<IEnumerable<Dept>>> GetAll(){_logger.LogInformation("开始查询所有部门");var depts = await _dbContext.Depts.ToListAsync();_logger.LogDebug($"查询到 {depts.Count} 个部门");return Ok(depts);}
}

效果验证启动项目后,控制台和 

logs/app.log 文件会输出类似以下日志:

2025-10-15 16:20:00.123 [INF] 开始查询所有部门
2025-10-15 16:20:00.456 [DBG] 查询到 5 个部门

http://www.dtcms.com/a/564750.html

相关文章:

  • 怎么在PPT里面插入网页?
  • ETL核对
  • Hangfire 入门与实战:在 .NET Core 中实现可靠后台任务处理
  • python ppt转pdf以及图片提取
  • 大连做公司网站的公司用php做网站要用什么软件
  • 中国建设银行网站口公关工资一般多少钱一个月
  • 线性矩阵不等式 (LMI)
  • 基于无六环H校验矩阵和归一化偏移minsum算法的LDPC编译码matlab性能仿真
  • Linux DMA 技术深度解析:从原理到实战
  • PsTools 学习笔记(7.14):PsFile——谁占用了我的文件?一键查清并安全释放
  • 企业级数智化解决方案:行云创新 AI-CloudOS 产品矩阵引领转型价值落地
  • 华为发布Atlas 900 DeepGreen AI服务器:单机柜100PF算力重构AI训练基础设施
  • 线性代数 - 矩阵求逆
  • 什么网站做生鲜比较好企业网站建设注意什么
  • 前端技术栈 ——nvm与Node.js环境安装
  • 具身智能(一)关于VLA模型π0
  • 企业门户网站的意义做淘宝的人就跟做网站一样
  • 私人做网站图片企业网站的建设与维护是什么
  • Enterprise architect工具绘制活动图时如何使用Call Behavior Actions
  • 华为openEuler 22.03 (LTS-SP3) 手动安装单点clickhouse
  • 用docker搭建selenium grid分布式环境
  • App 上架苹果商店全流程详解 从开发者账号申请到开心上架(Appuploader)跨平台免 Mac 上传实战指南
  • SpringBoot中使用tess4j进行OCR(在macos上面开发)
  • Debian开发板3568配置打印机驱动
  • 基于 Debian 服务器的前端项目部署完整教程
  • Debian 服务器环境搭建全指南:从工具选型到项目部署实战
  • app网站如何做推广方案山东进一步优化
  • 长沙网站关键词seo苏州建设工程招投标网
  • 【数据结构】二维数组中的元素查重
  • 软件设计模式(tyutJAVA 状态模式实验)