public class Foo
{
public string Baz { get; set; }
public List<Bar> Bars { get; set; }
}
, वहाँ परिभाषित करने के लिए कितना गहरा मैं वस्तुओं को मैप करने के automapper चाहते किसी भी तरह से है?AutoMapper मानचित्रण स्तर जब मैं श्रेणी से ऊपर के नक्शे को परिभाषित
var mapped = Mapper.Map<FooDTO>(foo, opt => { levels: 0 });
// result = { Baz: "" }
var mapped = Mapper.Map<FooDTO>(foo, opt => { levels: 1 });
// result = { Baz: "", Bars: [{ Blah: "" }] }
var mapped = Mapper.Map<FooDTO>(foo, opt => { levels: 2 });
// result = { Baz: "", Bars: [{ Blah: "", Buzz: [{ Baz: "" }] }] }
// etc...
मैं वर्तमान में एक nuget निर्भरता की वजह से 3.3 automapper उपयोग कर रहा हूँ: मैं के बाद क्या कर रहा हूँ के कुछ छद्म कोड।
नवीनतम संस्करण में भी automapper में स्तर सेट करने का कोई तरीका नहीं है। क्योंकि आप एक समय में केवल 1 स्तर के पदानुक्रम से निपटते हैं। आपके मामले में आपको 2 मैपर कॉन्फ़िगरेशन की आवश्यकता है। 'फू' के लिए एक और 'बार' के लिए दूसरा। आप किसी भी प्रॉपर्टी के लिए अपने मैपर कॉन्फ़िगरेशन में 'opt.Ignore() 'का उपयोग कर सकते हैं, जिसे आप मानचित्र बनाना नहीं चाहते हैं। Automapper स्वचालित रूप से मानचित्र करता है यदि ऑब्जेक्ट्स के नाम समान हैं या मेल खाते हैं। मुझे लगता है कि आपके मामले में ऑब्जेक्ट नाम अलग हैं और आपको प्रत्येक ऑब्जेक्ट के लिए कॉन्फ़िगरेशन की आवश्यकता है। – Venky