2010-03-13 16 views

Respuesta

18

Sí, porque si cambia el tipo de alguna propiedad (por ejemplo, DateTime -> cadena) no es bidireccional (deberá indicar a Automapper cómo convertir una cadena -> DateTime).

+0

tiene sentido, pero sería bueno que la biblioteca trató de hacer el mapeo como una convención, y usted podrá incapacitar de forma explícita si no fuera trabajando. Por ejemplo, mapeo objetos de dominio para ver modelos y el mapeo bidireccional funcionaría perfectamente para mí. –

52

Sí, pero si usted se encuentra haciendo esto a menudo:

public static class AutoMapperExtensions 
{ 
    public static void Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression) 
    { 
     Mapper.CreateMap<TDestination, TSource>(); 
    } 
} 

a continuación:

Mapper.CreateMap<A, B>().Bidirectional(); 
+0

gracias. es genial – Benny

+0

bien, gracias :) – Marko

+0

, aunque esto puede no responder a la pregunta, sin duda resuelve el problema subyacente presentado – hanzolo

7

Gran idea Eric! He agregado un valor de retorno, por lo que el mapeo inverso también se puede configurar.

public static class AutoMapperExtensions 
{ 
    public static IMappingExpression<TDestination, TSource> Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression) 
    { 
     return Mapper.CreateMap<TDestination, TSource>(); 
    } 
} 
15

esto es ahora al horno en AutoMapper

Mapper.CreateMap<SourceType, DestType>().ReverseMap(); 
+0

Esto no funciona con asignaciones personalizadas, solo cuando los nombres de las propiedades son los mismos en ambas clases. –

Cuestiones relacionadas