SuperAPI AI 工具集

ef-core-configuration

编程与开发

查看项目

更新于 10-16 09:52

技能介绍

用途:该技能为 .NET Clean Architecture 项目生成 Entity Framework Core 配置,使用 Fluent API 而非特性标注,以保持领域层干净。配置类按实体拆分,放在 /Infrastructure/Configurations/ 目录下,文件名为 {Entity}Configuration.cs。

主要能力:提供 IEntityTypeConfiguration 按实体配置类;表映射(ToTable,snake_case 表名)、主键(HasKey、ValueGeneratedNever)、属性列(HasMaxLength、HasColumnType、IsRequired、HasDefaultValue、HasDefaultValueSql);索引(HasIndex,可唯一或复合唯一);关系(一对多、多对一、一对一、多对多连接实体,可配置 OnDelete 行为与自引用层级);值对象映射为 Owned Type,并支持将多个属性映射到同一表的不同列(如 Address、Money);枚举转字符串或整数及自定义转换;审计字段用影子属性(CreatedAt、UpdatedAt、Version 并发令牌);软删除(IsDeleted、DeletedAt 与 HasQueryFilter 全局过滤);PostgreSQL JSONB 列与 EF Core 7+ 的 ToJson() 值对象;OutboxMessage 配置(表名 outbox_message、jsonb 内容、按 ProcessedOnUtc 的过滤索引)。

使用方式:在 Infrastructure 项目引用 Microsoft.EntityFrameworkCore,创建实现 IEntityTypeConfiguration<{Entity}> 的 internal sealed 配置类,在 Configure 方法内调用上述 Fluent API。值对象使用 OwnsOne,多对多使用连接实体并用 HasKey 定义复合主键。数据库为 PostgreSQL 时表名与列名采用 snake_case。

限制:主要面向 PostgreSQL 命名与类型(如 jsonb、CURRENT_TIMESTAMP AT TIME ZONE 'UTC'、num