Si quiero hacer una asignación bidireccional, ¿necesito crear dos asignaciones?Asignación bidireccional de AutoMapper
Mapper.CreateMap<A, B>() and Mapper.CreateMap<B, A>()
?
Si quiero hacer una asignación bidireccional, ¿necesito crear dos asignaciones?Asignación bidireccional de AutoMapper
Mapper.CreateMap<A, B>() and Mapper.CreateMap<B, A>()
?
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).
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();
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>();
}
}
esto es ahora al horno en AutoMapper
Mapper.CreateMap<SourceType, DestType>().ReverseMap();
Esto no funciona con asignaciones personalizadas, solo cuando los nombres de las propiedades son los mismos en ambas clases. –
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í. –