双方向マッピングを行いたい場合、2 つのマッピングを作成する必要がありますか?
Mapper.CreateMap<A, B>() and Mapper.CreateMap<B, A>()
?
双方向マッピングを行いたい場合、2 つのマッピングを作成する必要がありますか?
Mapper.CreateMap<A, B>() and Mapper.CreateMap<B, A>()
?
はい。ただし、これを頻繁に行っている場合は、次のようにします。
public static class AutoMapperExtensions
{
public static void Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression)
{
Mapper.CreateMap<TDestination, TSource>();
}
}
それから:
Mapper.CreateMap<A, B>().Bidirectional();
はい、一部のプロパティのタイプを変更すると (たとえば、DateTime -> 文字列)、双方向ではないためです (Automapper に文字列 -> DateTime の変換方法を指示する必要があります)。
素晴らしいアイデア エリック! 戻り値を追加したので、逆マッピングも構成可能です。
public static class AutoMapperExtensions
{
public static IMappingExpression<TDestination, TSource> Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression)
{
return Mapper.CreateMap<TDestination, TSource>();
}
}