2010-03-13 20 views

उत्तर

18

हां, क्योंकि यदि आप कुछ संपत्ति के प्रकार को बदलते हैं (उदाहरण के लिए डेटटाइम -> स्ट्रिंग) यह बिडरेक्शनल नहीं है (आपको स्ट्रॉम -> डेटटाइम को कन्वर्ट करने के लिए ऑटोमैपर को निर्देश देना होगा)।

+0

भावना बनाता है, लेकिन यह अच्छा होगा यह पुस्तकालय एक सम्मेलन के रूप में मानचित्रण करने की कोशिश की है, और आप स्पष्ट रूप से अक्षम कर सकते हैं, तो यह नहीं था काम कर रहे। उदाहरण के लिए, मैं मॉडल देखने के लिए डोमेन ऑब्जेक्ट्स को मैप करता हूं और बिडरेक्शनल मैपिंग मेरे लिए पूरी तरह से काम करेगा। –

52

हाँ, पर आप अपने आप को इस बार कर पाते हैं:

public static class AutoMapperExtensions 
{ 
    public static void Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression) 
    { 
     Mapper.CreateMap<TDestination, TSource>(); 
    } 
} 

तो:

Mapper.CreateMap<A, B>().Bidirectional(); 
+0

धन्यवाद। यह अच्छा है – Benny

+0

वास्तव में अच्छा, धन्यवाद :) – Marko

+0

जबकि यह सवाल का जवाब नहीं दे सकता है, यह निश्चित रूप से अंतर्निहित समस्या को हल करता है – hanzolo

7

बहुत अच्छा विचार है एरिक! मैंने एक वापसी मूल्य जोड़ा है, इसलिए रिवर्स मैपिंग भी कॉन्फ़िगर करने योग्य है।

public static class AutoMapperExtensions 
{ 
    public static IMappingExpression<TDestination, TSource> Bidirectional<TSource, TDestination>(this IMappingExpression<TSource, TDestination> expression) 
    { 
     return Mapper.CreateMap<TDestination, TSource>(); 
    } 
} 
15

यह अब AutoMapper में शामिल किया हुआ है

Mapper.CreateMap<SourceType, DestType>().ReverseMap(); 
+0

यह कस्टम मैपिंग के साथ काम नहीं करता है, केवल तभी जब संपत्ति के नाम दोनों कक्षाओं में समान होते हैं। –

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