Model view controller Automapper.NET MVC 2-如何合并配置

Model view controller Automapper.NET MVC 2-如何合并配置,model-view-controller,automapper,Model View Controller,Automapper,我的解决方案中有多个层: 生意 数据(能够选择ADO.NET或EntityFramework的数据工厂) REST(WebApi) 服务 Web(ASP.NET MVC Angular 2 SPA) 我想将EntityFramework实体从业务层(数据层)映射到业务实体(DTO),还想将业务实体(DTO)从业务层映射到API实体(WebApi层) WebApi项目没有对数据项目的引用。 数据和WebApi项目都引用了业务项目 我以前没有与AutoMapper合作的经验 如果我在数据和Web

我的解决方案中有多个层:

  • 生意
  • 数据(能够选择ADO.NET或EntityFramework的数据工厂)
  • REST(WebApi)
  • 服务
  • Web(ASP.NET MVC Angular 2 SPA)
我想将EntityFramework实体从业务层(数据层)映射到业务实体(DTO),还想将业务实体(DTO)从业务层映射到API实体(WebApi层)

WebApi项目没有对数据项目的引用。 数据和WebApi项目都引用了业务项目

我以前没有与AutoMapper合作的经验

如果我在数据和WebApi项目中初始化静态AutoMapper,它显然会覆盖静态配置,并且我会丢失映射。这是合乎逻辑的

数据:

Mapper.Initialize(cfg=>
{
CreateMap().ReverseMap();
});
WebApi:

Mapper.Initialize(cfg =>
{
    cfg.CreateMap<SectionEntity, ApiSection>().ForMember(dest => dest.Href, opt => opt.MapFrom(src => src.SectionId.ToSectionHref())).ReverseMap();
    //cfg.CreateMap<Section, SectionEntity>().ReverseMap();
});
Mapper.Initialize(cfg=>
{
cfg.CreateMap().formMember(dest=>dest.Href,opt=>opt.MapFrom(src=>src.SectionId.ToSectionHref()).ReverseMap();
//CreateMap().ReverseMap();
});
我注意到在AutoMapper配置指南中有一个“组装扫描”主题和示例,但我无法让它工作

AutoMapper有没有办法“合并”配置


将不同类库中的映射配置合并到一起而不依赖于它们的最佳方法是什么?

有什么方法不能使用程序集扫描?您只需在程序集中传递程序集或类型。部署的应用程序将包含所有其他程序集,因此这应该很简单。有什么不能使用程序集扫描?您只需在程序集中传递程序集或类型。部署的应用程序将包含所有其他程序集,因此这应该很简单。
Mapper.Initialize(cfg =>
{
    cfg.CreateMap<SectionEntity, ApiSection>().ForMember(dest => dest.Href, opt => opt.MapFrom(src => src.SectionId.ToSectionHref())).ReverseMap();
    //cfg.CreateMap<Section, SectionEntity>().ReverseMap();
});