五层架构项目中AutoMapper文件夹应当创建在哪一层?
AutoMapper文件夹存放位置建议
优先放在 Core层,如果项目映射逻辑仅在API层使用,也可放在API层,以下是具体依据:
各层职责与适配性说明
我们先明确这套五层架构的通用职责边界,再对应匹配AutoMapper的定位:
- Entities层:仅存放领域实体、DTO、ViewModel等纯数据结构,不承载任何配置、逻辑代码,不适合存放AutoMapper相关内容
- DataAccess层:仅负责数据库交互、仓储实现,和对象映射逻辑无关,无需引入AutoMapper配置
- Business层:存放核心业务规则,可调用AutoMapper的映射能力,但不适合维护全局映射配置,避免业务逻辑和工具配置耦合
- Core层:作为全项目通用的公共基础层,负责存放全局配置、通用工具、公共抽象,所有上层都可依赖Core层,是最适合存放AutoMapper文件夹的位置
- API层:仅负责请求路由、入参校验、出参封装,如果你的项目规模很小,映射规则仅用于API层的参数转换,没有其他层使用映射的场景,也可将AutoMapper文件夹放在本层
Core层存放的优势
- 映射规则全局复用,不管是Business层做实体转换,还是API层做出参转换,都可以用同一套配置,避免重复编码
- 符合分层架构的依赖原则:所有外层依赖内层Core层,不会出现不合理的反向依赖
- 方便统一维护映射规则,后续调整映射逻辑只需要修改Core层的配置即可,不需要改动多个业务层
小提示:AutoMapper的服务注册代码建议放在API层的
Program.cs中,属于应用启动时的全局服务配置。
内容的提问来源于stack exchange,提问作者Samet Ertas
相关产品推荐
相关产品推荐

