应将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>();
}
}
答案 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:配置文件。