2012-09-14 10 views
6

मैं दो उप वर्ग है कि मैं एक मास्टर वस्तु में से एक सूची तत्व नकल करने की जरूरत हैएक वस्तु को automapper बहु वस्तुओं

public Class Foo1 : Anote 
{ 
    public bool Ison { get; set;} 
    public List<Anote>Anotes { get; private set;} 

    public Foo1() 
    { 
    this.Anotes = new List<Anote>(); 
    } 
} 

public Class Foo2 : Bnote 
{ 
    public bool Ison { get; set;} 
    public List<Bnote>Anotes { get; private set;} 

    public Foo2() 
    { 
    this.Anotes = new List<Bnote>(); 
    } 
} 

public Class Foo3 : Cnote 
{ 
    public bool Ison { get; set;} 
    public List<Cnote>Anotes { get; private set;} 
    public List<Cnote>Bnotes { get; private set; } 

} 

मैं एक डेटाबेस से डेटा retreiving किया जाएगा और Foo1 और foo2 में इस डेटा डाल । मुझे Foo3 और Foo2 से सूची डेटा को Foo3 में सूची तत्वों में मानचित्र करने के लिए की आवश्यकता है।

मैं

Foo1A foo1a = new Foo1A(); 
Foo2A foo2a = new Foo2A(); 

Mapper.CreateMap<Foo1, Foo1A>(); 
Mapper.CreateMap<Foo2, F002A>(); 
Mapper.Map<Foo1, Foo2A>(foo1, foo1a); 
Mapper.Map<Foo2, F002A>(foo2, foo2a); 

किया है और यह काम करता है लेकिन मैं क्या करने की जरूरत है

है मानचित्र Foo1 में सूची Anotes सूची Anotes को Foo3 में foo2 में नक्शा सूची Anotes सूची के लिए Foo3 में बोनोट्स।

उत्तर

7

तुम बस करने के लिए सक्षम होना चाहिए:

Mapper.CreateMap<ANote, CNote>(); 

Mapper.CreateMap<Foo1, Foo3>() 
    .ForMember(dest => dest.ANotes, opt => opt.MapFrom(src => src.ANotes)) 
    .ForMember(dest => dest.BNotes, opt => opt.Ignore()); 

Mapper.CreateMap<Foo2, Foo3>() 
    .ForMember(dest => dest.BNotes, opt => opt.MapFrom(src => src.ANotes)) 
    .ForMember(dest => dest.ANotes, opt => opt.Ignore()); 

Foo3 foo3 = new Foo3(); 

Mapper.Map<Foo1, Foo3>(foo, foo3); 
Mapper.Map<Foo2, Foo3>(foo2, foo3); 

foo3.ANotes और foo3.BNotes दोनों सही ढंग से मैप किया किया जाना चाहिए था।

+0

किसी और के लिए जो इस पर ठोकर खाती है, मैं वस्तुओं के दो सूचियों को मर्ज करने के लिए इस समाधान का उपयोग करने की कोशिश कर रहा हूं। मैं यह समझने में सक्षम नहीं हूं कि काम करने के लिए इसे कैसे प्राप्त किया जाए। मुझे एक foreach का उपयोग करना था और फिर प्रत्येक आइटम को मैप करना था और मैन्युअल रूप से इसे एक सूची में जोड़ना था। – Icestorm0141

+0

@ Icestorm0141: क्या आपके पास एक नया प्रश्न खुला है? –

+0

दूसरे मैपिंग Foo2 में Foo3, यानी, 'FORMember (dest => dest.BNotes, opt => opt.MapFrom (src => src.anotes))' यह 'src 'नहीं होना चाहिए, src.ANotes'? –

संबंधित मुद्दे