用途:为 ABP Framework 的 code-first 开发提供 Entity Framework Core 模式参考,目标数据库为 PostgreSQL,覆盖实体建模到性能优化的常见写法。
主要能力:
- 实体基类:列出 Entity<TKey>、AuditedEntity、FullAuditedEntity、AggregateRoot、FullAuditedAggregateRoot 等基类及其包含字段(Id、审计时间与操作人、软删除、领域事件、并发令牌),并指出 FullAuditedAggregateRoot 最常用。
- 实体与配置:示例实体使用私有 setter、私有无参构造函数和 Check 校验;配置通过独立 IEntityTypeConfiguration 类使用 Fluent API,设置表名、主键、必填与最大长度、唯一索引及软删除查询过滤器。
- 关系映射:一对多(HasOne/WithMany/OnDelete Restrict)、多对多(推荐显式连接实体并配置复合主键)、一对一(WithOne/HasForeignKey),以及值对象 OwnsOne。
- 迁移命令:dotnet ef migrations add 与通过 DbMigrator 项目应用迁移。
- PostgreSQL 特性:text[]、jsonb、gen_random_uuid() 默认值;B-tree、GIN、BRIN 与部分索引;tsvector 计算列与全文检索查询(ToTsQuery + Matches)。
- 性能:EF Core 7+ 的 ExecuteUpdateAsync/ExecuteDeleteAsync 批量操作、AsSplitQuery 避免笛卡尔积、EF.CompileAsyncQuery 编译查询。
- 全局过滤器与并发:ABP 自动应用 ISoftDelete、IMultiTenant 过滤,可用 _dataFilter.Disable<ISoftDelete>() 临时关闭;AggregateRoot 提供并发处理,捕获 AbpDbConcurrencyException。
- 质量清单:基类选择、私有 setter、独立配置类、索引、显式删除行为、PostgreSQL 类型与 GIN 索引等。
使用方式:作为 AI 技能/参考资料加载,在编写 ABP + EF Core 代码时按上述模式套用;命令保持原样执行。
适用场景:ABP Framework 项目的领域实体设计、DbContext 配置、迁移与 PostgreSQL 性能调优。
限制:资料未提供版本兼容范围、授权与收费信息、安装步骤及与其他数据库的适配说明。