27

双方向マッピングを行いたい場合、2 つのマッピングを作成する必要がありますか?

Mapper.CreateMap<A, B>() and Mapper.CreateMap<B, A>()?

4

4 に答える 4

56

はい。ただし、これを頻繁に行っている場合は、次のようにします。

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

それから:

Mapper.CreateMap<A, B>().Bidirectional();
于 2010-10-24T18:44:28.253 に答える
21

はい、一部のプロパティのタイプを変更すると (たとえば、DateTime -> 文字列)、双方向ではないためです (Automapper に文字列 -> DateTime の変換方法を指示する必要があります)。

于 2010-03-13T16:21:30.557 に答える
7

素晴らしいアイデア エリック! 戻り値を追加したので、逆マッピングも構成可能です。

public static class AutoMapperExtensions
{
    public static IMappingExpression<TDestination, TSource> Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression)
    {
        return Mapper.CreateMap<TDestination, TSource>();
    }
}
于 2013-01-04T08:40:58.667 に答える