繁体   English   中英

使用AutoMapper将IEnumerable映射到具有一个列表作为属性的类

[英]Mapping IEnumerable to class with one list as a property - using AutoMapper

我从第三方api接收到IEnumerable <Class1>。

我想使用Automapper将其映射到以下类:

public class WrapperClass
{
    public List<Class2> Items { get; set; }
}

所以本质上我在想我需要两个映射:

IEnumerable<Class1> ----> WrapperClass
_______

Class1 ----> Class2

我将如何在Automapper中进行处理

是的,您必须首先为映射Class1到Class2创建映射,如下所示:

AutoMapper.Mapper.CreateMap<Class1, Class2>().ForMember(x => x.A, y => y.MapFrom(z => z.B));

然后在类上为地图集合创建映射:

AutoMapper.Mapper.CreateMap<IEnumerable<Class1>, WrapperClass>().ForMember(x => x.Items, y => y.MapFrom(z => z));

最后,您可以像这样使用它:

var wrapperClass = AutoMapper.Mapper.Map<IEnumerable<Class1>, WrapperClass>(/* list */);

下面的三个类用于此示例:

public class WrapperClass
{
    public List<Class2> Items { get; set; }
}

public class Class2 {
    public int A { get; set; }
}

public class Class1
{
    public int B { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM