automapper не отображает, как ожидалось

Я новичок в automapper, поэтому я могу атаковать это неправильно. Я работаю над приложением mvc и хочу использовать automapper для сопоставления моделей домена и моделей представления. Мое представление использует IList для отображения html-страницы.

Вот код от моего контроллера -

IList<viewModel> vm = Mapper.Map<IList<entity1, viewModel>(dataFromEntity1);

Вот моя конфигурация Automapper -

 protected override void Configure()
 {
     CreateMap<entity1, viewModel>();
 }

Вот моя Сущность1

public class entity1
{
       public virtual int id { get; set; }
       public virtual string anything { get; set; }

       public virtual Entity2 entity2 { get; set; }
}

Вот сущность2 -

public class entity2
{
       public virtual int id_2 { get; set; }
       public virtual string everything { get; set; }
}

Вот моя модель просмотра -

public class viewModel
{
       public string anything { get; set; }
       public string entity2everything { get; set; }
}

Прочитав документы в codeplex, я предположил, что сопоставление для всего из entity2 будет работать автоматически, но когда я запускаю тест AssertConfigurationIsValid, он терпит неудачу на entity2everything.

Я видел сообщение здесь, которое показывает, что должно быть объектом entity2Dto для сопоставления, но с чем это связано? Должен ли я добавить это к моему объекту viewModel?

Я где-то пропустил сопоставление? Я не могу понять, как это должно работать. Спасибо за любые мысли.


person czuroski    schedule 24.02.2011    source источник


Ответы (1)


Проблема, похоже, связана с регистром имени свойства!

Если вы переименуете свойство модели представления в entity2Everything (вместо entity2everything), оно должно работать.

Интересно, что Entity2Everything тоже работает - я не уверен, что это сделано по дизайну или ошибка в коде AutoMapper.

person fodonnel    schedule 24.02.2011
comment
это все еще не работает. Единственное сообщение, которое я получаю из-за сбоя теста, - это добавить пользовательское выражение сопоставления, игнорировать или переименовать свойство в entity1. - person czuroski; 25.02.2011
comment
Думаю, я понял это. Это может быть связано с отношениями - попыткой автоматизировать и сгладить один ко многим. Возможно, мне придется использовать собственный преобразователь. Благодарность - person czuroski; 25.02.2011