哪个文件夹放置Auto Mapper Profiler类?

时间:2018-10-23 05:18:07

标签: c# asp.net-core automapper asp.net-core-2.0

应将Mapping Profiler类放在哪里?在数据访问层文件夹中?商业服务层文件夹?在控制器文件夹中?

public class MappingProfile : Profile {
    public MappingProfile() {
        // Add as many of these lines as you need to map your objects
        CreateMap<User, UserDto>();
        CreateMap<UserDto, User>();
    }
}

4 个答案:

答案 0 :(得分:2)

这取决于您的体系结构设计。

不同的人喜欢在不同的地方放置地图轮廓文件类。

我的个人观点是,我总是创建一个名为AutoMapperMapping的项目来放置所有与automapper相关的内容,并将解决方案dll放在需要的地方。

如果您遵循三层体系结构,则可以将其放入业务层。而且,如果您在控制器中使用自动映射器,则可以将映射放置在宿主项目本身的单独文件夹中。

答案 1 :(得分:1)

取决于个人资料本身,即

  • 正在映射什么?
  • 以及您打算在哪里使用映射(在哪一层)?

如果您要映射的唯一位置在最顶层,则可能是最适合该配置文件的地方,
以便最小化引用自动映射器的层。

答案 2 :(得分:0)

正如ASP.net-MVC的here所述,即使您可以将其放入其他项目(例如,洋葱体系结构中的域项目),也要根据您拥有的解决方案体系结构来选择。当然,对于多层体系结构,您可能具有多个配置文件和配置。

但是对于asp.net核心(如某些教程中那样),您可以具有一个Extension文件夹,用于为单个项目解决方案放置验证属性,过滤器属性,配置文件等。对于依赖注入,我建议在控制器的构造函数中放置一个Imapper接口,并在services.AddAutoMapper()的{​​{1}}中调用ConfigureServices

答案 3 :(得分:0)

这取决于您的需要,我将其用于通过Code-First Model类映射ViewModel。 我创建了一个新的文件夹/名称空间映射,例如 yourProject.Mappings AutoMapperProfileConfiguration:配置文件