2011-08-25 64 views
1

我有一種情況,即AutoMapper無法正常工作而忽略成員。這是類結構和映射。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到Class

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而不清空它?

回答

1

通常映射是從一個類型的類到另一個類的類完成的。你想在這裏做什麼?克隆?

看看API我認爲最好使用UseDestinationValue()而不是忽略。我用你的代碼測試了它,但它似乎仍然沒有工作。

Mapper.CreateMap<ParentFoo, ParentBar>() 
    .ForMember(b => b.Child, o => o.UseDestinationValue()); 
+0

UseDestinationValue是我的問題的解決方案,我用不同的方式解決了整個問題;) – TuomasK