[ad_1]
Automapperを使用してDtoのリストを他のオブジェクトにマッピングしたい
ソース:
public class Order { public List<ShipOnly> Ship { get; set; } } public class ShipOnly { public string Name { get; set; } }
行き先
public class Order { public List<ShipOnly> Ship { get; set; } } public class ShipOnly { public string Name { get; set; } }
私が試したこと:
2日間ここで立ち往生しています。リストをマップする方法を教えてください。
Mapper.CreateMap<AbcDto, Abcd>() .ForMember();
前もって感謝します。
解決策 1
メンバーをマップする必要はありません。 両方のタイプをマップする必要があるだけです。
与えられる:
C#
namespace Db { public class Order { public List<ShipOnly> Ship { get; set; } } public class ShipOnly { public string Name { get; set; } } } namespace Dto { public class Order { public List<ShipOnly> Ship { get; set; } } public class ShipOnly { public string Name { get; set; } } }
初期化:
C#
Mapper.Initialize(cfg => { cfg.CreateMap<Db.Order, Dto.Order>(); cfg.CreateMap<Db.ShipOnly, Dto.ShipOnly>(); });
使用:
C#
Db.Order source = new Db.Order { Ship = new List<Db.ShipOnly> { new Db.ShipOnly { Name = "Test" } } }; Dto.Order result = Mapper.Map<Dto.Order>(source); Debug.Assert(result.Ship != null); Debug.Assert(result.Ship.Count == 1); Debug.Assert(result.Ship[0].Name == "Test");
[ad_2]
コメント