automappper 集合
时间: 2024-01-24 16:05:20 浏览: 53
AutoMapper 是一个对象映射工具,可以帮助开发人员快速方便地实现对象之间的映射。其中包含了集合的映射功能。
对于集合的映射,AutoMapper 提供了以下方法:
- CreateMap<TSource, TDestination>().ForMember(dest => dest.CollectionName, opt => opt.MapFrom(src => src.SourceCollectionName));
该方法用于将源集合映射到目标集合中,并可以指定集合名称。
- CreateMap<TSource, TDestination>().ForMember(dest => dest.CollectionName, opt => opt.UseDestinationValue());
该方法用于将目标集合的名称设置为与源集合名称相同。
- CreateMap<TSource, TDestination>().ForAllMembers(opts => opts.Condition((src, dest, srcMember) => srcMember != null));
该方法用于在映射时忽略源集合中为 null 的项。
使用 AutoMapper 进行集合映射的示例代码如下:
```csharp
//定义源集合和目标集合
List<SourceItem> sourceList = new List<SourceItem>()
{
new SourceItem() { Id = 1, Name = "Item1" },
new SourceItem() { Id = 2, Name = "Item2" }
};
List<DestinationItem> destinationList = new List<DestinationItem>();
//创建映射规则
Mapper.Initialize(cfg =>
{
cfg.CreateMap<SourceItem, DestinationItem>();
});
//执行集合映射
destinationList = Mapper.Map<List<SourceItem>, List<DestinationItem>>(sourceList);
```
上述示例代码中,我们首先定义了源集合和目标集合,然后创建了映射规则,最后使用 Mapper.Map() 方法进行集合映射。其中,Mapper.Map() 方法的第一个参数是源集合,第二个参数是目标集合。在本例中,我们将源集合中的每个 SourceItem 对象映射到目标集合中的一个 DestinationItem 对象。
阅读全文