2010-08-12 13 views
5

के साथ ऑब्जेक्ट में सूची से नीचे मानचित्रण मैं ऑटोमैपर के साथ नया हूं और एक समस्या है जिसे मैं हल करने की कोशिश कर रहा हूं।ऑटोमैपर

अगर मैं इस तरह एक स्रोत वर्ग है:

public class Membership 
{ 
    public int MembershipId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string OrganizationName { get; set; } 
    public List<Address> Addresses { get; set; } 
} 

और पता वर्ग इस तरह दिखता है:

public class Address 
{ 
    public int AddressId{ get; set; } 
    public int RefAddressTypeId { get; set; } 
    public string AddressLine1 { get; set; } 
    public string AddressLine2 { get; set; } 
    public string City { get; set; } 
    public string State { get; set; } 
    public string Zip { get; set; } 
    public bool IsPreferredAddress { get; set; } 
} 

मेरे गंतव्य वर्ग है:

public class UserInformationModel 
{ 
    public string UserName { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Organization { get; set; } 
    public string EmailAddress { get; set; } 
    public PhysicalAddress BillingAddress { get; set; } 
    public PhysicalAddress ShippingAddress { get; set; } 
} 

और गंतव्य पता वर्ग है:

public class PhysicalAddress 
{ 
    public AddressType AddressType{get; set;} 
    public string AddressLine1 { get; set; } 
    public string AddressLine2 { get; set; } 
    public string City { get; set; } 
    public string State { get; set; } 
    public string PostalCode { get; set; } 

} 

मैं इस तरह एक मानचित्रण की स्थापना की है:

Mapper.CreateMap<MinistryMattersIntegration.BusinessObjects.Entities.Cokesbury.Membership, UserInformationModel>() 
     .ForMember(dest => dest.Organization, opt => opt.MapFrom(src=>src.OrganizationName)); 

यह UserInformationModel की सदस्यता के लिए काम कर रहा है, लेकिन अब मैं काम कर रहा पतों प्राप्त करने की आवश्यकता। ध्यान देने योग्य एक महत्वपूर्ण बात यह है कि मूल मॉडल में गंतव्य एक एकल बिलिंग पता और एक शिपिंग पता है, सभी पते को सूची के रूप में संग्रहीत किया जाता है। जिस तरह से आपको सूची से शिपिंग और बिलिंग पते मिलते हैं, वह RefAddressTypdId और IsPreferredAddress को देखकर है। एक विशेष RefAddressTypeId के साथ केवल एक पसंदीदा पता मौजूद हो सकता है।

तो, मेरा सवाल यह है कि आप इस तरह के मैपिंग करने के लिए ऑटोमैपर कैसे प्राप्त करते हैं? क्या यह संभव है, या क्या मैं नियमित मैपिंग कोड के साथ बस बेहतर हूं?

+0

मुझे भी इसी तरह की समस्या है। क्या आपको अपनी समस्या का समाधान मिला है? यदि हां, तो क्या आप कृपया मेरे साथ साझा कर सकते हैं। मुझे कस्टम रीसॉल्वर का उपयोग नहीं करना है। यदि आप अपने मामले के लिए कुछ उदाहरण साझा कर सकते हैं तो यह बहुत उपयोगी होगा। – Rupesh

उत्तर

6

आप ऑटोमैपर की Custom Value Resolvers सुविधा का उपयोग करना चाहेंगे। तो आप इसे खोजने के लिए IsPreferredAddress ध्वज का उपयोग करके अपनी सूची से अपनी एकल इकाई में मानचित्र करने के लिए एक कस्टम रिजॉल्वर सेट अप करेंगे।

प्रलेखन कस्टम रिजॉल्वर के लिए बहुत अच्छा है, इसलिए आपको इसे वहां से ठीक लगाना चाहिए।

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