आप सिर्फ एक मानचित्रण के साथ ऐसा करने में सक्षम होना चाहिए:
आप एक KeyValuePair<User, bool>
UserDto
करने के लिए नक्शे की जरूरत है। ऑटोमैपर List<T>
की सामग्री में शब्दकोश की सामग्री को मैप करने में सक्षम होने के लिए आवश्यक है, हम अंततः बना रहे हैं (अधिक स्पष्टीकरण this answer में पाया जा सकता है)।
Mapper.CreateMap<KeyValuePair<User, bool>, UserDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.Key.UserName))
.ForMember(dest => dest.Avatar, opt => opt.MapFrom(src => src.Key.Avatar))
.ForMember(dest => dest.IsFriend, opt => opt.MapFrom(src => src.Value));
फिर, अपने .Map
कॉल में मानचित्रण का उपयोग करें:
Mapper.Map<Dictionary<User, bool>, List<UserDto>>(...);
आप के रूप AutoMapper Dictionary
एक List
से मैप जब तक आप के रूप में संभाल कर सकते हैं, संग्रह के लिए खुद को मैप करने की आवश्यकता नहीं है ' हमने एक दूसरे के संग्रह के सामग्री मैप किया है (हमारे मामले में, KeyValuePair<User, bool>
से UserDto
)।
संपादित: यहाँ एक और समाधान मानचित्रण की आवश्यकता नहीं है कि हर User
संपत्ति UserDto
रहे हैं:
Mapper.CreateMap<User, UserDto>();
Mapper.CreateMap<KeyValuePair<User, bool>, UserDto>()
.ConstructUsing(src => Mapper.Map<User, UserDto>(src.Key))
.ForMember(dest => dest.IsFriend, opt => opt.MapFrom(src => src.Value));
AutoMapper 2.0
स्रोत
2012-05-15 12:14:07
यदि कोई मुझे वास्तव में ऑटोमैपर का उपयोग करने वाली विधि दे सकता है, तो मैं इस सवाल पर जवाब बदलूंगा! – reach4thelasers