我有一种情况,即AutoMapper无法正常忽略成员。这是类结构和映射。
public class Class1 {
public Class2 Class2 { get; set; }
}
public class Class2 {
public List<Class3> class3List { get; set; }
}
Mapper.CreateMap<Class1, Class1>();
Mapper.CreateMap<Class2, Class2>
.ForMember(dest => dest.class3List, opt => opt.Ignore());
Mapper.CreateMap<Class3, Class3>();
当我将Class1映射到Class1
时Mapper.Map<Class1, Class1>(object1, object2);
在对象2中,class3List为空,但在映射之前它有项目。如果我像这样进行映射。
Mapper.CreateMap<Class1, Class1>();
.ForMember(dest => dest.Class2, opt => opt.Ignore());
Mapper.CreateMap<Class2, Class2>();
Mapper.CreateMap<Class3, Class3>();
它会忽略Class2属性。 那么在将Class1映射到Class1时,如何忽略class3List而不清空它?
答案 0 :(得分:1)
通常映射是从一个类的类到另一个类的类完成的。你想在这里实现什么?克隆?
查看API我认为最好使用UseDestinationValue()而不是Ignore。我用你的代码测试了它,但它似乎仍然没有工作。
Mapper.CreateMap<ParentFoo, ParentBar>()
.ForMember(b => b.Child, o => o.UseDestinationValue());