使用AutoMapper将字典's的值映射到列表

本文关键字:映射 列表 AutoMapper 字典 使用 | 更新日期: 2023-09-27 18:08:47

我有一个数据库对象,它有一个属性字典,我需要映射到一个新对象内的列表对象。我的结构(简化)看起来像这样:

public class DbObject { // The source
  public Dictionary<string, DbCustomProperty> customProperties;
}
public class DbCustomProperty {
  public string Key;
  public string Value;
}

public class DTOObject { // The destination
  public List<DTOCustomProperty> DTOCustomProperties;
}
public class DTOCustomProperty {
  public string Key;
  public string Value;
}

如您所见,我想将DbObject(源)映射到DTOObject(目标)。问题是我的DBObject包含一个字典,其中的值是我想映射到列表的属性。

。dtoObject. customproperties . values -> dtoObject。CustomProperties

这可以通过AutoMapper实现吗?

使用AutoMapper将字典's的值映射到列表

您可以使用:

AutoMapper.CreateMap<IGrouping<string, DbCustomProperty>, DTOCustomProperty>()
            .ForMember(dest => dest.Key, opt => opt.MapFrom(src => src.Key))
            .ForMember(dest => dest.Value, opt => opt.MapFrom(src => src.Value)));