2012-01-17 6 views
6

मेल नहीं खाते मैं इस मानचित्रण मेरी आवेदन परत में परिभाषित किया है:Automapper IList - एक विधि कार्यान्वयन में शरीर के हस्ताक्षर और घोषणा

public IList<ProfessionDTO> GetAllProfessions() 
{ 
    IList<Profession> professions = _professionRepository.GetAll(); 
    Mapper.CreateMap<Profession, ProfessionDTO>(); 
    Mapper.CreateMap<IList<Profession>, IList<ProfessionDTO>>(); 
    IList<ProfessionDTO> professionsDto = Mapper.Map<IList<Profession>, IList<ProfessionDTO>>(professions); 
    return professionsDto; 
} 

पेशे इकाई

public class Profession 
    { 
     private int _id; 
     private string _name; 


     private Profession(){} // required by nHibernate 

     public Profession(int id, string name) 
     { 
      ParameterValidator.NotNull(id, "id is required."); 
      ParameterValidator.NotNull(name, "name is required."); 
      _id = id; 
      _name = name; 
     } 

     public string Name 
     { 
      get { return _name; } 
     } 

     public int Id 
     { 
      get { return _id; } 
     } 
    } 

पेशे डीटीओ :

public class ProfessionDTO 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 
एक विधि कार्यान्वयन में शरीर और घोषणा के

हस्ताक्षर से मेल नहीं खाते: 0

जब GetAllProfessions क्रियान्वित मैं इस त्रुटि मिलती है।

कोई विचार यह क्यों हो रहा है?

मैंने अभी तक सभी आईएलआईस्ट सूची में बदल दिया है। मुझे अब अपवाद नहीं मिला है लेकिन पेशे की 27 इकाइयों की सूची जिसे पुनर्प्राप्त किया गया है, पेशे डीटीओ के 0 पर मैप किया गया है।

उत्तर

12

मुझे लगता है कि मैं अपने खुद के प्रश्न का जवाब दे रहा हूं।

मैं इस लाइन की जरूरत नहीं है:

Mapper.CreateMap<IList<Profession>, IList<ProfessionDTO>>(); 

अब Auomapper पूरी तरह से काम करता है!

+2

+1 अपने स्वयं के प्रश्न का उत्तर देने के लिए धन्यवाद! – HitLikeAHammer

0

आपके पास अपने पेशे वर्ग में आपके आईडी और नाम विशेषता के लिए सेटर्स नहीं हैं।

+0

इससे कोई फर्क नहीं पड़ता। पेशे की इकाई स्रोत है। सेटर्स का कभी भी उपयोग नहीं किया जाता है। –

+0

हाँ, मुझे पता है, लेकिन यह एकमात्र चीज है जो मैं उन गुणों के बीच अलग दिखता हूं .. – JoJa

0

उत्तर दिया गया गलत लगता है; सही एक जैसा होना चाहिए;

Mapper.CreateMap<Profession, ProfessionDTO>(); 
संबंधित मुद्दे