मेरे पास एक डब्ल्यूसीएफ सेवा है और हमने अभी तक एक व्यापार वस्तु के लिए एक डीटीओ बनाया है।डेटा ट्रांसफर ऑब्जेक्ट्स - डीटीओ में या व्यापार ऑब्जेक्ट में मैपिंग करें?
मेरा प्रश्न है कि दोनों के बीच मैपिंग कहां रखा जाए?
ए) डीटीओ में?
public class PersonDTO
{
[DataMember] public string Id { get; set; }
[DataMember] public string Name { get; set; }
public void CloneFrom(Person p)
{
Id = p.Id;
Name = p.Name;
}
public void Populate(Person p)
{
p.Id = Id;
p.Name = Name;
}
}
या
बी) व्यापार वस्तु में?
public class Person
{
public string Id { get; set; }
public string Name { get; set; }
public void CloneFrom(PersonDTO dto)
{
Id = dto.Id;
Name = dto.Name;
}
public PersonDTO GetDTO()
{
return new PersonDTO()
{
Id = Id;
Name = Name;
}
}
}
मैं एक में चिंताओं की जुदाई (बिजनेस वस्तु DTOs का ज्ञान नहीं होता) की तरह है, लेकिन मैं बी के कैप्सूलीकरण (डीटीओ को व्यापार वस्तु हिम्मत का पर्दाफाश करने की कोई जरूरत नहीं) पसंद करते हैं।
बस आश्चर्य हुआ कि क्या मानक तरीका था?
वास्तव में? यदि मैं अपनी व्यावसायिक वस्तु का पर्दाफाश करने जा रहा हूं ताकि एक तीसरी कक्षा मैपिंग करने की अनुमति दे, मैं इसे डीटीओ में भी कर सकता हूं। अभी तक एक और कक्षा बनाना मेरे लिए बहुत अधिक लगता है। हालांकि, मैं ऑटोमैपर पर एक नज़र डालेगा, धन्यवाद। – GazTheDestroyer
@GazTheDestroyer: एक डीटीओ डेटा हस्तांतरण के लिए परिवर्तित नहीं है। एक डीटीओ अपने उपयोग के बारे में पता नहीं है i.e: मैपिंग्स। यह डेटा को स्थानांतरित करता है और यह उपभोक्ता पर निर्भर करता है कि डेटा का उपयोग किसी भी उद्देश्य के लिए करें यानी: उदाहरण के लिए इसे व्यूमोडेल पर मैप करें। आप डीटीओ में मैपिंग जोड़ने के लिए स्वतंत्र हैं लेकिन मेरी विनम्र राय में इसका मतलब है कि हालांकि आप डीटीओ के इरादे के उद्देश्य से चूक रहे हैं और जैसे आपका डीटीओ अब डीटीओ नहीं है। हमारी वर्तमान परियोजना में एक भंडार संस्थाएं उत्पन्न करता है। बीएल इकाइयों को प्राप्त करता है, उन्हें डीटीओ को मानचित्रित करता है। यूआई परत क्वेरी बीएल, डीटीओ प्राप्त करता है और उन्हें ViewModels (आवश्यकतानुसार) पर मानचित्रित करता है। – Nope