Почему AutoMapper генерирует исключения при реализации в соответствии с документацией? - PullRequest
0 голосов
/ 30 октября 2018

Я пытался использовать AutoMapper в приложении ASP.NET MVC, но не могу заставить этот AutoMapper перестать поражать меня AutoMapperConfigurationExceptions, когда я просматриваю детали, AutoMapper в основном говорит мне, что он не может сопоставить никакое свойство, то есть. профиль не найден?!?

Я сделал все в соответствии с документацией на сайте AutoMapper.

Global.asax:

protected void Application_Start()
{
    // neither of those two ways works
    Mapper.Initialize(cfg => cfg.AddProfiles(typeof(ImageEntity2GalleryModelMapping)));
    Mapper.Initialize(cfg => cfg.AddProfiles(Assembly.GetExecutingAssembly()));
}

Профиль отображения:

public class ImageEntity2GalleryModelMapping : Profile
{
    // take note that this used to be an override of Configure() but the
    // AutoMapper API has changed recently to favor Ctor now
    public ImageEntity2GalleryModelMapping()
    {
        CreateMap<Image, GalleryModel>()
            .ForMember(dest => dest.ImageId, opt => opt.MapFrom(src => src.ImageId))
            // and so on
            ;
    }
}

Внутри контроллера:

public ActionResult Index()
{
    return View(Mapper.Map<GalleryModel>(_dbContext.Images.ToList()));
}

Я что-то упустил?

1 Ответ

0 голосов
/ 30 октября 2018

ОК, только что узнал, что мне нужно сопоставить класс коллекции (у меня сложилось впечатление, что AutoMapper неявно об этом позаботится).

Просто меняется от этого

return View(Mapper.Map<GalleryModel>(_dbContext.Images));

к этому

return View(Mapper.Map<IList<GalleryModel>>(_dbContext.Images));

и теперь это работает;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...