AutoMapper: сопоставьте оба пути в синтаксисе Net Core 2 - PullRequest
1 голос
/ 14 июня 2019

Что такое синтаксис для сопоставления обоих способов в AutoMapper Net Core2? Мне нужно отобразить ProductViewModel и ProductDto в обе стороны. Это не работает,

Startup.cs

var config = new MapperConfiguration
(
    cfg => cfg.CreateMap<Models.ProductDto, Models.ProductViewModel>(),
    cfg => cfg.CreateMap<Models.ProductViewModel, Models.ProductDto>()
);

var mapper = config.CreateMapper();

1 Ответ

1 голос
/ 14 июня 2019

Я бы лучше создал отдельный инициализатор и маппер.например, вот мой AutoMapperStartupTask класс.

public static class AutoMapperStartupTask
{
    public static void Execute()
    {
        Mapper.Initialize(
            cfg =>
            {
                cfg.CreateMap<ProductViewModel, ProductDto>()
                    .ReverseMap();
            });
    }
}

и Mapper

public static class DtoMapping
{
    public static ProductViewModel ToModel(this ProductDto dto)
    {
        return Mapper.Map<ProductDto, ProductViewModel>(dto);
    }

    public static ProductDto ToDto(this ProductViewModel dto)
    {
        return Mapper.Map<ProductViewModel, ProductDto>(dto);
    }
}

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
   AutoMapperStartupTask.Execute();
}

Использование в контроллере

var dto = productModel.ToDto();
var model = productDto.ToModel(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...