Подтвердить что ты не робот

Мне нужно создать файл Sitemap для автоматов в обоих направлениях?

Это может быть глупый вопрос! (n00b в AutoMapper и время-короткое!)

Я хочу использовать AutoMapper для сопоставления объектов EF4 классам ViewModel.

1) Если я вызываю

CreateMap<ModelClass, ViewModelClass>()

тогда мне также нужно вызвать

CreateMap<ViewModelClass, ModelClass>()

выполнить обратное?

2) Если два класса имеют одинаковые имена свойств, то мне нужен оператор CreateMap вообще или это только для "конкретных/пользовательских" сопоставлений?

4b9b3361

Ответ 1

В AutoMapper у вас есть тип источника и тип назначения. Таким образом, вы сможете сопоставить этот тип источника и тип назначения, только если у вас есть соответствующая CreateMap. Поэтому, чтобы ответить на ваши вопросы:

  • Вам не нужно определять обратное сопоставление. Вы должны сделать это только в том случае, если собираетесь направить карту.
  • Да, вам нужно вызвать CreateMap, чтобы указать, что эти типы являются отображаемыми, иначе будет вызываться исключение, когда вы вызываете Map<TSource, TDest>, сообщая вам, что сопоставление не существует между типом источника и назначения.

Ответ 2

Для информации людей, которые спотыкаются на этот вопрос. Кажется, теперь есть встроенный способ достижения обратного сопоставления путем добавления вызова .ReverseMap() в конце вашей цепочки конфигурации CreateMap().

Ответ 3

Я использовал метод расширения, отображающий оба пути

    public static IMappingExpression<TDestination, TSource> BothWays<TSource, TDestination>
        (this IMappingExpression<TSource, TDestination> mappingExpression)
    {
        return Mapper.CreateMap<TDestination, TSource>();
    }

использование:

 CreateMap<Source, Dest>().BothWays();