Asp.net core 在v8.0中自动将多个源映射到单个目标

Asp.net core 在v8.0中自动将多个源映射到单个目标,asp.net-core,automapper,Asp.net Core,Automapper,我对.net core 3.1中的整个Automapper世界都是新手,正在浏览文档等,但从最新版本的8.0中找不到任何适合我的用例 ,我如何在新的v8.0配置中做到这一点 public class People { public string FirstName {get;set;} public string LastName {get;set;} } public class Phone { public string Number {get;set;} } Conv

我对.net core 3.1中的整个Automapper世界都是新手,正在浏览文档等,但从最新版本的8.0中找不到任何适合我的用例

,我如何在新的v8.0配置中做到这一点

public class People {
   public string FirstName {get;set;}
   public string LastName {get;set;}
}

public class Phone {
   public string Number {get;set;}
}

Convert to a PeoplePhoneDto like this:

public class PeoplePhoneDto {
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public string PhoneNumber {get;set;}
}
我还会用这个吗

Mapper.CreateMap<People, PeoplePhoneDto>();
Mapper.CreateMap<Phone, PeoplePhoneDto>()
        .ForMember(d => d.PhoneNumber, a => a.MapFrom(s => s.Number));
Mapper.CreateMap();
Mapper.CreateMap()
.ForMember(d=>d.PhoneNumber,a=>a.MapFrom(s=>s.Number));

以下是一个工作演示:

型号:

public class People
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class Phone
{
    public string Number { get; set; }
}

public class PeoplePhoneDto
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string PhoneNumber { get; set; }
}
自动映射配置文件:

public class AutoMapperProfile : Profile
{
    public AutoMapperProfile()
    {
        CreateMap<People, PeoplePhoneDto>();
        CreateMap<Phone, PeoplePhoneDto>()
             .ForMember(d => d.PhoneNumber, a => a.MapFrom(s => s.Number));
    }
}
控制器:

public class HomeController : Controller
{
    private readonly IMapper _mapper;
   
    public HomeController(IMapper mapper)
    {
        _mapper = mapper;
    }
    public IActionResult Index()
    {
        var people = new People() { FirstName = "aaa", LastName = "bbb" };
        var phone = new Phone() { Number = "12345" };
        var model = _mapper.Map<PeoplePhoneDto>(people); // map dto1 properties
        _mapper.Map(phone, model);

        //do your stuff...
        return View();
    }
}
公共类HomeController:控制器
{
专用只读IMapper\u映射器;
公共家庭控制器(IMapper映射器)
{
_映射器=映射器;
}
公共IActionResult索引()
{
var people=new people(){FirstName=“aaa”,LastName=“bbb”};
var phone=new phone(){Number=“12345”};
var model=_mapper.Map(people);//映射dto1属性
_地图(电话,型号);
//做你的事。。。
返回视图();
}
}
结果:

我想你会和别人或电话打交道。与此映射不在一起。请查看此源
public class HomeController : Controller
{
    private readonly IMapper _mapper;
   
    public HomeController(IMapper mapper)
    {
        _mapper = mapper;
    }
    public IActionResult Index()
    {
        var people = new People() { FirstName = "aaa", LastName = "bbb" };
        var phone = new Phone() { Number = "12345" };
        var model = _mapper.Map<PeoplePhoneDto>(people); // map dto1 properties
        _mapper.Map(phone, model);

        //do your stuff...
        return View();
    }
}