tutorial standard net inicializar imapper example asp.net-mvc-3 model viewmodel automapper

asp.net-mvc-3 - standard - inicializar automapper c#



¿Necesito crear Automapper Createmap en ambos sentidos? (3)

En AutoMapper tienes un tipo de fuente y un tipo de destino. Por lo tanto, podrá asignar este tipo de fuente y tipo de destino solo si tiene un mapa de creación correspondiente. Entonces para responder a sus preguntas:

  1. No necesita definir el mapeo inverso. Tienes que hacerlo solo si tienes la intención de hacer un mapa atrás.
  2. Sí, debe llamar a CreateMap para indicar que esos tipos son asignables; de lo contrario, se lanzará una excepción cuando llame a Map<TSource, TDest> indicándole que no existe una correspondencia entre el tipo de origen y el de destino.

¡Esta podría ser una pregunta estúpida! (n00b a AutoMapper y tiempo corto!)

Quiero usar AutoMapper para mapear desde entidades EF4 a clases ViewModel.

1) Si llamo

CreateMap<ModelClass, ViewModelClass>()

entonces también necesito llamar

CreateMap<ViewModelClass, ModelClass>()

para realizar el reverso?

2) Si dos clases tienen los mismos nombres de propiedad, entonces ¿necesito una declaración CreateMap en absoluto, o es solo para mapeos "específicos / personalizados"?


He usado un método de extensión haciendo un mapa de ambas maneras

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

uso:

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


Para la información de las personas que tropiezan con esta pregunta. Ahora parece haber una forma incorporada de lograr una asignación inversa agregando una llamada .ReverseMap() al final de su cadena de configuración CreateMap() .