2010-03-13 5 views

Répondre

18

Oui, car si vous modifiez le type de certaines propriétés (par exemple DateTime -> chaîne), il n'est pas bidirectionnel (vous devrez indiquer à Automapper comment convertir la chaîne -> DateTime).

+0

est logique, mais ce serait bien la bibliothèque, il a essayé de faire la cartographie comme une convention, et vous pourriez désactiver explicitement si elle n'a pas été travail. Par exemple, je mappe les objets de domaine pour voir les modèles et la cartographie bidirectionnelle fonctionnerait parfaitement pour moi. –

52

Oui, mais si vous vous trouvez faire souvent:

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

alors:

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

merci. il est cool – Benny

+0

cool en effet, merci :) – Marko

+0

tout cela peut ne pas répondre à la question, il résout certainement le problème sous-jacent dépréciés dans – hanzolo

7

Grande idée Eric! J'ai ajouté une valeur de retour, donc le mappage inverse est également configurable.

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

Ceci est maintenant cuit dans AutoMapper

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

Cela ne fonctionne pas avec les applications personnalisées, uniquement lorsque les noms de propriétés sont les mêmes dans les deux classes. –

Questions connexes