列表的AutoMapper配置

本文关键字:配置 AutoMapper 列表 | 更新日期: 2023-09-27 18:26:52

我有一个实体和相应的DTO

public class PersonEntity {
    public int personId;
    public List<Contact> contacts;
}
public class PersonDto {
   public int personId;
   public List<int> contacts;
}

使用以下带有AutoMapper 的地图

Mapper.Map<PersonDto, Person>();

我正在使用AutoMapper来获取DTO,这不是问题。

我正在将DTO解析回实体,以更新实体中的字段进行保存操作,我对联系人列表不再感兴趣。Automapper抛出了一个异常,因为它不喜欢将int列表映射到对象列表。

有什么建议或更好的方法吗。

编辑

使用的解决方案是

Mapper.CreateMap<PersonDto, Person>()
            .ForMember(x => x.contacts, y => y.Ignore());

列表的AutoMapper配置

您能在配置中使用ignore方法吗?

http://automapper.codeplex.com/wikipage?title=Configuration%20Validation

opt => opt.Ignore()

但是。你真的需要更新实体来保存吗?为什么不发送一个包含更改数据的命令呢。

正如您所知,AutoMapper在具有相同名称的对象中查找属性&类型,因此您很可能需要更改DTO或实体,使它们匹配。