Академический Документы
Профессиональный Документы
Культура Документы
ViewModel Cliente:
(install-package AutoMapper)
Classe AutoMapperConfig
using AutoMapper;
namespace MvcMapping.Mappers
{
public class AutoMapperConfig
{
public static void RegisterMappings()
{
Mapper.Initialize(x =>
{
x.AddProfile<DomainToViewModelMappingProfile>();
x.AddProfile<ViewModelToDomainMappingProfile>();
});
}
}
}
Classe DomainToViewModelMappingProfile
using AutoMapper;
using MvcMapping.Models;
using MvcMapping.ViewModels;
namespace MvcMapping.Mappers
{
public class DomainToViewModelMappingProfile : Profile
{
public override string ProfileName
{
get { return "DomainToViewModelMappings"; }
}
protected override void Configure()
{
Mapper.CreateMap<Cliente, ClienteViewModel>();
}
}
Classe ViewModelToDomainMappingProfile
using AutoMapper;
using MvcMapping.Models;
using MvcMapping.ViewModels;
namespace MvcMapping.Mappers
{
public class ViewModelToDomainMappingProfile : Profile
{
public override string ProfileName
{
get { return "ViewModelToDomainMappings"; }
}
protected override void Configure()
{
Mapper.CreateMap<ClienteViewModel, Cliente>();
}
}
DomainToViewModelMappingProfile
>
Profile
de
ViewModelToDomainMappingProfile >
mapeamento (View Model > Model)
Profile
de
Neste
momento
resta
apenas
configurar
que
a
classe AutoMapperConfig seja inicializada junto com a aplicao
para registrar os profiles de mapeamento, essa configurao
feita no arquivo Global.asax
Application_Start
AutoMapperConfig.RegisterMappings();
AutoMapper.Mapper.CreateMap<Origem, Destino>();
AutoMapper.Mapper.CreateMap<Book, BookViewModel>()
.ForMember(dest => dest.Author,
opts => opts.MapFrom(src => src.Author.Name));
Extras
1) Mapeando uma lista:
var destinationList = AutoMapper.Mapper.Map<List<Destino>>(origem);