在 v8.0 中将多个源自动映射到单个目标
Automapper multiple source to single target in v8.0
我是 .net core 3.1 中整个 Automapper 世界的新手,正在浏览文档和 SO,但无法从他们的最新版本 8.0 中找到适合我的用例的任何内容。
Borrowing from another SO post,我如何在新的 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));
这是一个像下面这样的工作演示:
型号:
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; }
}
AutoMapper 配置文件:
public class AutoMapperProfile : Profile
{
public AutoMapperProfile()
{
CreateMap<People, PeoplePhoneDto>();
CreateMap<Phone, PeoplePhoneDto>()
.ForMember(d => d.PhoneNumber, a => a.MapFrom(s => s.Number));
}
}
Startup.cs:
services.AddAutoMapper(typeof(AutoMapperProfile));
控制器:
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();
}
}
结果:
我是 .net core 3.1 中整个 Automapper 世界的新手,正在浏览文档和 SO,但无法从他们的最新版本 8.0 中找到适合我的用例的任何内容。
Borrowing from another SO post,我如何在新的 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));
这是一个像下面这样的工作演示:
型号:
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; }
}
AutoMapper 配置文件:
public class AutoMapperProfile : Profile
{
public AutoMapperProfile()
{
CreateMap<People, PeoplePhoneDto>();
CreateMap<Phone, PeoplePhoneDto>()
.ForMember(d => d.PhoneNumber, a => a.MapFrom(s => s.Number));
}
}
Startup.cs:
services.AddAutoMapper(typeof(AutoMapperProfile));
控制器:
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();
}
}
结果: