2011-09-28 13 views
10

का एक उदाहरण बनाने बनाने के लिए मैं निम्नलिखित स्रोत प्रकार है:AutoMapper वर्ग

public class Source 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Address1 { get; set; } 
    public string Address2 { get; set; } 
    public string City { get; set; } 
    public string State { get; set; } 
    public string ZipCode { get; set; } 
} 

मेरे पास निम्न गंतव्य प्रकार:

public class Destination 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    public Address HomeAddress { get; set; } 
} 

public class Address 
{ 
    public string Address1 { get; set; } 
    public string Address2 { get; set; } 
    public string City { get; set; } 
    public string State { get; set; } 
    public string PostalCode { get; set; } 
} 

मैं एक मानचित्रण बनाया:

Mapper.CreateMap<Source, Destination>(); 

मैं अपने मैपिंग को कैसे कॉन्फ़िगर कर सकता हूं ताकि यह पता का उदाहरण बनाये और पता का पता लगा सके। POostalCode प्रॉपर्टी टी का उपयोग कर वह स्रोत संपत्ति ZipCode?

उत्तर

9

आफ्टर मैप के साथ, आप निर्दिष्ट कर सकते हैं कि ऑटोमैपर ने मैपिंग के बाद इकाइयों को कैसे मैप करना है।

Mapper.CreateMap<Source, Destination>() 
       .AfterMap((src, dest) => 
           { 
            dest.HomeAddress = new Address {PostalCode = src.ZipCode}; 
           } 
      ); 
+0

मैं इस कोशिश की। काम नहीं करता। अभिव्यक्ति 'dest => कनवर्ट करें (dest.Address.PostalCode)' को शीर्ष-स्तरीय सदस्य को हल करना होगा। – Dismissile

+0

इसके अलावा, मैं अपने कन्स्ट्रक्टर में प्रारंभिकरण नहीं रखना चाहता क्योंकि जब मैं एक नए गंतव्य को तुरंत चालू करता हूं, तो मैं हमेशा बनाना और पता नहीं करना चाहता हूं, केवल जब मैं स्रोत से मैप करता हूं, तो मुझे एक पता बनाया जाना चाहिए। – Dismissile

+0

@ डिस्मिसाइल, यह असफल रहा है क्योंकि आप 'कनवर्ट (...) 'dest.Address.PostalCode' को हल कर रहे हैं। साथ ही, यहां उदाहरणों को देखकर: https://github.com/AutoMapper/AutoMapper/wiki/Projection ऐसा लगता है कि आपको खाली कन्स्ट्रक्टर को शामिल करने की आवश्यकता नहीं हो सकती है, जब तक कि दोनों वर्गों में डिफ़ॉल्ट कन्स्ट्रक्टर हों। – scottm

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