Как использовать AutoMapper с PagedList?

Я хотел бы использовать AutoMapper для сопоставления моей ViewModel с классом модели предметной области. Также я использую пакет NuGet PagedList. Я использую это так:

[Authorize]
[AutoMap(typeof(ErrorsLog), typeof(ErrorsLogViewModel))]
public ActionResult Errors(string searchString, string currentFilter, int? page)
{
    if (searchString != null)
    {
        page = 1;
    }
    else
    {
        searchString = currentFilter;
    }

    var el = _er.GetErrorsLog();
    ViewBag.CurrentFilter = searchString;

    if (!String.IsNullOrEmpty(searchString))
    {
        el = el.Where(s => s.ErrorSource.Contains(searchString));
    }

    const int pageSize = 3;
    int pageNumber = (page ?? 1);
    return View("Errors", el.ToPagedList(pageNumber, pageSize));
}

К сожалению, я получил ошибку:

Отсутствует конфигурация карты типов или неподдерживаемое сопоставление. Типы сопоставления: ErrorsLog -> ErrorsLogViewModel DigitalHubOnlineStore.Models.ErrorsLog -> DigitalHubOnlineStore.ViewModels.ErrorsLogViewModel Путь назначения: ErrorsLogViewModel Исходное значение: PagedList.PagedList`1 [DigitalHrerOnodels]

Как я могу это исправить?


person andrey.shedko    schedule 13.06.2015    source источник


Ответы (1)


Вы зарегистрировали свои сопоставления? Судя по сообщению об ошибке, вы еще не вызывали метод CreateMap.
Взгляните на это.

ИЗМЕНИТЬ

Как упоминалось здесь, вы можете создать статический класс для своих сопоставлений. ..

public static class AutoMapperConfig
{
   public static void Configure()
   {    
      Mapper.CreateMap<ErrorsLog, ErrorsLogViewModel>();
   }
}

и просто назовите его в своем Global.asax:

AutoMapperConfig.Configure();
person Daniel Oliveira    schedule 13.06.2015
comment
Да я не сделал. Где мне назвать этот метод? В контроллере или Global.asax? - person andrey.shedko; 13.06.2015
comment
Вы знаете, что лучше включить основные части ответа здесь (не в ссылку) и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - person ZygD; 13.06.2015
comment
Вы правы, @ZygD, извините! Андрей, я отредактировал ответ с учетом основных требований конфигурации, надеюсь, что это поможет! - person Daniel Oliveira; 13.06.2015