用途
该技能用于在 EF Core 项目中创建一个实体(Entity),并执行迁移以在 Postgres 数据库中创建对应的数据表。它是 CRUD 练习 Day 1 的第 5 步,触发词包括 'day1 step5'、'create entity/table for…'。
主要能力
- 根据用户提供的实体名称和列定义生成实体类文件。
- 在 AppDbContext 中注册对应的 DbSet。
- 运行 EF Core 迁移命令,在 Postgres 中创建数据表。
- 整个过程无需重新部署,直接作用于已运行的 Postgres 容器。
使用方式
开始前需要向用户询问以下信息:
- 实体名称(PascalCase,例如 Product、Order、User)——必填。
- 列定义(格式:ColumnName:Type,逗号分隔,例如 Name:string, Price:decimal, Stock:int)——必填。
- 可空列(可选,默认所有非字符串/Id 列均为非空)——可选。
技能会严格按指定内容使用,不会建议、添加或修改列。
生成的实体类位于 up-api/Entities/<Entity>.cs,示例结构如下:
public class <Entity>
{
public int Id { get; set; }
// one property per given column, e.g.:
// public string Name { get; set; } = string.Empty;
// public decimal Price { get; set; }
}
在 AppDbContext 中添加:
public DbSet<<Entity>> <Entity>s => Set<<Entity>>();
然后执行命令:
cd up-api
dotnet ef migrations add Init<Entity>
dotnet ef database update
该命令通过 db-config 步骤中 localhost:5432 的连接字符串作用于已运行的 Postgres 容器,无需重新部署。
适用场景
适用于 EF Core + Postgres 项目在开发阶段快速创建实体和数据表,尤其是 CRUD 练习的 Day 1 第 5 步。
限制
- 需要用户明确提供实体名称和列定义,技能不会自行推断或修改。
- 依赖已运行的 Postgres 容器和 db-config 步骤中配置的连接字符串。
- 验证表是否存在可通过 psql 中的 \dt 命令,或通过 docker exec 进入数据库容器查看。