.net - ऑटोमैपर का उपयोग कैसे करें.मेम्बर?




automapper (3)

अंत में, मेरा मानना ​​है कि यह रीशेपर के साथ किसी तरह की असंगतता साबित हुई।

ऐसा लगता है कि ReSharper ऑटोमैपर कोड को गलत तरीके से प्रदर्शित करने का कारण बनता है, लेकिन ठीक काम करता है (भले ही यह त्रुटि संदेशों के साथ लाल प्रदर्शित करता हो)। अनइंस्टॉलिंग रीशेर्पर ने इस मुद्दे को पूरी तरह से ठीक किया।

मैं एंटिटी से डीटीओ में कनवर्ट करने के लिए ऑटोमैपर स्थापित करने की कोशिश कर रहा हूं। मुझे पता है कि .ForMember() बाद .ForMember() का उपयोग करना चाहिए। कस्टम मैपिंग सेट अप करने के लिए Mapper.CreateMap<Entity, DTO>() , लेकिन यह एक उपलब्ध विधि प्रतीत नहीं होता है।

स्पष्टीकरण के लिए संपादित करें: मैं प्रलेखन के लिंक की तलाश नहीं कर रहा हूं, जिसे मैंने पढ़ा है, या मूल वाक्यविन्यास का स्पष्टीकरण। मैं जवाब और दस्तावेज़ीकरण में वर्णित सही वाक्यविन्यास का उपयोग कर रहा हूं, उदाहरण के लिए:

Mapper.CreateMap<EFAddress, Address>()
      .ForMember(dest => dest.Code, opt => opt.MapFrom(src => src.Name));

अगर मेरे पास CreateMap <> के भीतर एक अमान्य प्रकार का नाम है, तो मैं एक वैध विधि के रूप में "ForMember" देख सकता हूं, विधिवत विधि हस्ताक्षर दिखाता है जैसा कि मैं आमतौर पर अपेक्षा करता हूं। लेकिन जैसे ही मैं इसे दो मान्य प्रकार देता हूं, ForMember का कहना है कि यह प्रतीक को हल नहीं कर सकता है, जैसे कि विधि उपलब्ध नहीं है।

क्या उन सामान्य वर्गों पर कोई बाधा है जो मैं नहीं मिल रहा हूं?

धन्यवाद


एक नमूना कार्यान्वयन निम्नानुसार होगा:

Mapper.CreateMap<Game, GameViewModel>()
  .ForMember(m => m.GameType, opt => opt.MapFrom(src => src.Type))

हमें इस संपत्ति को मैप करने की आवश्यकता है क्योंकि गेम और गेम व्यूमोडेल के गुणों के नाम अलग-अलग हैं - यदि वे समान हैं और उसी प्रकार के हैं तो उन्हें फॉरमेम्बर की आवश्यकता नहीं होगी

ForMember का एक और उपयोग मैपिंग को अनदेखा करना है

Mapper.CreateMap<Game, GameViewModel>()
    .ForMember(dest => dest.Prize, opt => opt.Ignore());

निम्नलिखित वाक्यविन्यास आज़माएं:

Mapper
    .CreateMap<Entity, EntityDto>()
    .ForMember(
        dest => dest.SomeDestinationProperty,
        opt => opt.MapFrom(src => src.SomeSourceProperty)
    );

या यदि स्रोत और गंतव्य गुणों के समान नाम हैं:

Mapper.CreateMap<Entity, EntityDto>();

कृपया अधिक जानकारी और अन्य मैपिंग परिदृश्यों के लिए documentation के प्रासंगिक अनुभागों की जांच करें।







automapper