目录
- DTO和实体
- 实体
- DTO
- 麻烦的映射
- AutoMapper 集成
- IObjectMapper/ObjectMapper
- 对象拓展
DTO和实体
实体
实体是领域驱动设计(Domain Driven Design)中的概念,实体通常一一映射某些对象的固有属性,最常使用的是关系型数据库中的表。
在 ABP 中,实体位于领域层中,实体类需要实现 IEntity
接口或继承 Entity
基类,示例如下:
public class Book : Entity { public string Name { get; set; } public float Price { get; set; } }
DTO
数据传输对象(Data Transfer Object),作为数据传输过程中的数据模型,用于在应用层和表示层之间传输数据。
在 ABP 中,DTO 位于应用服务层,即本系列文章示例源码中的 AbpBase.Application
项目。
通常表示层或其它类型的客户端调用应用服务时,将 DTO 作为参数传递,它使用领域对象(实体)执行某些特定的业务逻辑,并将 DTO (跟传入的 DTO 不是同一个)返回到表示层中,因此表示层与领域层完全隔离。
DTO 类 可能会跟 实体类的字段/属性高度相似,为每个服务的每个方法创建 DTO 类可能会很枯燥且费时间。
ABP 的 DTO 类示例