2012-11-02 20 views
12

के साथ मानचित्रण को अनदेखा करें मैं ऑटोमैपर का उपयोग कर रहा हूं और मैं जानना चाहता हूं कि यह शून्य के समय किसी मैपिंग को अनदेखा करना संभव है या नहीं।ऑटोमैपर - स्थिति

मेरी कोड है कि:

.ForMember(dest => dest.BusinessGroup_Id, 
      opt => opt.MapFrom(src => (int)src.BusinessGroup)) 
  • src.BusinessGroup type = "enum"
  • dest.BusinessGroup_Id = int

उद्देश्य यह है कि मानचित्रण अगर src.BusinessGroup = अशक्त ingore है। ,

.ForMember(d => d.BusinessGroup_Id, 
      o => o.MapFrom(s => s.BusinessGroup == null ? 0 : (int)s.BusinessGroup)); 

अद्यतन यदि आप अपनी संपत्ति के लिए कुछ डिफ़ॉल्ट मान असाइन नहीं कर सकते:

उत्तर

25

मुझे लगता है कि NullSubstitute विकल्प चाल

.ForMember(d => d.BusinessGroup_Id, o => o.MapFrom(s => (int?)s.BusinessGroup)); 
.ForMember(d => d.BusinessGroup_Id, o => o.NullSubstitute(0)); 

BTW आप मानचित्रण कार्य करती हुई अपनी स्थिति लिख सकते हैं क्या करेंगे आप इसे केवल अनदेखा कर सकते हैं और न केवल नल को मानचित्र कर सकते हैं:

.ForMember(d => d.BusinessGroup_Id, o => o.Ignore()) 
.AfterMap((s, d) => 
    { 
     if (s.BusinessGroup != null) 
      d.BusinessGroup_Id = (int)s.BusinessGroup; 
    }); 
+0

हाय lazyberezovsky, आपकी तेज प्रतिक्रिया के लिए धन्यवाद! मैं 0 को BusinessGroup_Id पर सेट नहीं कर सकता क्योंकि यह एक भविष्यवाणी है डीबी – user1520494

+2

टाई पर !! आपका आखिरी अपडेट मेरे लिए सही काम करता है! :) – user1520494

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