AutoMapper は初めてです。これが単純すぎる場合は申し訳ありません。
これは私のサンプル ドメインです。
私はバスケットを持っています。食品のリストが含まれています。食べ物はバナナかピクルス。
ドメイン内の各クラスをミラーリングする DTO があります。目標: BasketD から、それとその内容を Basket にマップします。
これは失敗するコードです。最後の行の後にバスケットがありますが、通常のエンティティではなく DTO でいっぱいです :(
class Program
{
static void Main(string[] args)
{
Mapper.CreateMap<BasketDto, Basket>();
Mapper.CreateMap<PickleDto, Pickle>();
Mapper.CreateMap<BananaDto, Banana>();
var dto = new BasketDto
{
Food = new List<IFood>
{
new PickleDto { Name = "BigPickle" },
new BananaDto { Name = "SmallBanana" },
}
};
var basketFromDto = Mapper.Map<Basket>(dto);
}
}
// Domain classes and interfaces --------------
interface IFood
{
string Name { get; set; }
}
class Banana : IFood
{
public string Name { get; set; }
}
class Pickle : IFood
{
public string Name { get; set; }
}
class Basket
{
public IList<IFood> Food { get; set; }
}
// DTOs -------------
class BasketDto
{
public IList<IFood> Food { get; set; }
}
class PickleDto : IFood
{
public string Name { get; set; }
}
class BananaDto : IFood
{
public string Name { get; set; }
}
Food を IList として使用している子もマップするにはどうすればよいですか? Mappin インターフェースと階層は本当に複雑です!
どうもありがとう。