用途
该技能用于配置 up-api .NET 项目的 PostgreSQL 数据库连接,属于 Day 1 培训流程的第 4 步。其目标是在不重新部署的前提下,通过代码与配置完成数据库连接的接入。
主要能力
- 为 up-api 项目添加 PostgreSQL 相关的 NuGet 包:Npgsql.EntityFrameworkCore.PostgreSQL 与 Microsoft.EntityFrameworkCore.Design。
- 在 appsettings.Development.json 中配置连接字符串。
- 创建 Data/AppDbContext.cs,定义继承自 DbContext 的 AppDbContext 类。
- 在 Program.cs 中通过 AddDbContext 注册 AppDbContext,并使用 UseNpgsql 读取连接字符串。
使用方式
在 up-api 目录下执行以下命令安装包:
cd up-api
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
dotnet add package Microsoft.EntityFrameworkCore.Design
在 appsettings.Development.json 中配置:
{
"ConnectionStrings": {
"Default": "Host=localhost;Port=5432;Database=up_db;Username=upadmin;Password=uppass"
}
}
创建 Data/AppDbContext.cs:
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
// DbSet<Entity> properties are added in the entity-migration step
}
在 Program.cs 中注册:
builder.Services.AddDbContext<AppDbContext>(opt =>
opt.UseNpgsql(builder.Configuration.GetConnectionString("Default")));
适用场景
适用于需要为 .NET 项目接入 PostgreSQL 数据库、使用 EF Core 进行数据访问的初始化配置阶段。特别适合在本地开发环境中运行 EF CLI 命令前的准备步骤。
限制与注意事项
- 本步骤仅涉及代码与配置,不执行重新部署。
- 本地连接字符串使用 localhost,因为后续 EF CLI 命令从宿主机运行。
- 在 up-api 容器内部,连接字符串应使用 compose 服务名 db,该值已在 docker-deploy 步骤中通过容器环境变量设置,不应修改。
- DbSet<Entity> 属性将在实体迁移步骤中添加,本步骤不包含。