.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 个部门