SuperAPI AI 工具集

dotnet-domain-entity-generator

编程与开发

查看项目

更新于 10-16 02:10

技能介绍

用途

该技能用于在 .NET 项目中按照领域驱动设计(DDD)原则生成领域实体相关代码,是 dotnet-clean-architecture-skills 技能集中的一个技能。其目标是产出遵循封装、工厂方法、领域事件、富领域模型和不变式保护等 DDD 原则的领域层代码。

主要能力

技能在概念上区分并支持以下几类构造:

  • 聚合根(Aggregate Root):聚合的入口点,例如 Organization、User。
  • 子实体(Child Entity):聚合的组成部分,在聚合外没有独立身份,例如 OrderItem、AssessmentDetail。
  • 值对象(Value Object):不可变、无身份,例如 Email、Money、Address。
  • 领域事件(Domain Event):用于表示状态变化,例如 UserCreatedDomainEvent。

其遵循的设计原则包括:封装(私有 setter、受控修改)、工厂方法(带校验的静态 Create() 方法)、领域事件(状态变化时触发事件)、富领域模型(行为位于实体内而非服务中)、不变式保护(实体始终处于有效状态)。

生成的代码会组织成如下目录结构:在 /Domain/{Aggregate}/ 下包含主实体文件、类型化错误文件、仓储接口文件,以及 ValueObjects/ 和 Events/ 子目录。

使用方式

技能提供可直接套用的代码模板,包括:

  • 聚合根实体模板:包含私有集合、私有 setter 属性、用于 EF Core 的私有构造函数、用于工厂方法的私有构造函数、静态 Create() 工厂方法、Update/Deactivate/Activate 等领域方法、子实体增删方法以及查询方法。
  • 子实体模板:包含父级 Id、导航属性、私有构造函数、静态 Create() 工厂方法及 Update/Deactivate 方法。
  • 值对象模板:以 sealed record 实现,包含私有构造函数、静态 Create() 校验方法与类型化错误类(如 EmailErrors)。资料还给出了 Money 和 DateRange 两个值对象示例。
  • 领域错误模板:以静态类集中定义 NotFound、校验错误和业务规则错误。
  • 领域事件模板:以 sealed record 实现并继承 IDomainEvent,如 {Entity}CreatedDomainEvent。
  • 仓储接口模板:定义读取(GetByIdAsync、GetByNameAsync、GetByOrganizationIdAsync、ExistsAsync)等操作。

在实体中通过 RaiseDomainEvent 触发领域事件,通过 Result / Result<T> 返回成功或失败。

适用场景

适用于采用 .NET 与整洁架构、希望在领域层落地 DDD 建模的项目,尤其是需要聚合根、子实体、值对象、领域事件与仓储接口协同组织的场景。

限制

资料未提供该技能的安装命令、价格、收费模式、运行环境要求或独立使用步骤,这些信息暂未提供。实际可用性需以原始技能页面为准。