我是 AutoMapper 的新手。对不起,如果这太简单了。
这是我的示例域:
我有一个篮子。它包含一个食物列表。食物是香蕉或泡菜。
我有镜像域中每个类的 DTO。目标:从 BasketDto,将其及其内容映射到 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; }
}
我应该怎么做才能映射使用食物作为 IList 的孩子?Mappin 接口和层次结构真的很复杂!
非常感谢。