将带有嵌套列表的 object 映射到目标列表的 Automapper 配置文件

Automapper profile to map object with nested list to destination list

很难表达标题中的问题。试图确定编写自动映射器配置文件以在两个 object 之间映射到列表中的最佳方法,但目标列表中的项目数将等于源 [=23] 上内部列表中的项目数=].请找到我所追求的示例:

public class Destination
{
    public int Id { get; set; }
    public string Description { get; set; }
    public string Foo { get; set; }
    public string Bar { get; set; }
}

public class Source
{
   public int Id { get; set; }
   public string Description { get; set; }
   public List<FooBar> FooBar { get; set; }
}

public class FooBar
{
    public string Foo { get; set; }
    public string Bar { get; set; }
}

我想映射 Source -> List<Destination>,其中 Destination 中的项目数等于 Source 中的 FooBar 的数量,但它们每个都有一个 IdDescription 来自 Source.

.CreateMap<Source, List<Destination>>()
                    .ConvertUsing(source => source.FooBar.Select(fb => new Destination
                    {
                        Foo = fb.Foo,
                        Bar = fb.Bar,
                        Description = source.Description,
                        Id = source.Id
                    }).ToList()
                )

很明显,这样用

var destination = mapper.Map<List<Destination>>(Source);