1

リストに接続されている次のエンティティがあります。

国 -> 地域 -> 自治体 -> 番地

Country オブジェクトを DTO にマップすると、AutoMapper はグラフ全体を Streets まで自動的に投影します。これは優れたデフォルトです。特定のユースケースでは、ルート オブジェクト (Country) とその直接の子 (Regions) のみをマップしたいと考えています。これらの地域には、市町村の空のリスト (または null) が必要です。

これを実現する 1 つの方法は、次のようなマップを作成することです。

Mapper.CreateMap<Data.Country, Dto.Country>();
Mapper.CreateMap<Data.Region, Dto.Region>()
  .ForMember(dest => dest.Municipalities, opt => opt.Ignore())

これは、Region をルート オブジェクトとして射影する場合、Municipality のリストが無視されることを意味します。これを回避するには、考えられるルート オブジェクトごとに個別の ConfigurationStore オブジェクトを作成しますが、これにより多数の異なる ConfigurationStore が作成されます。AutoMapper にオブジェクト グラフの特定の深さまでのみマップするように指示する方法はありますか?

4

2 に答える 2

6

MaxDepthはい、次のように特定のマップを定義できます。

Mapper.CreateMap<Source, Destination>().MaxDepth(1);

詳細: https://docs.automapper.org/en/stable/Attribute-mapping.html?highlight=maxdepth

于 2015-03-12T12:30:27.727 に答える