2011-05-25 13 views
12

मेरे पास एक संपत्ति के साथ एक ऑटो जेनरेट क्लास है। मैं उसी संपत्ति के किसी अन्य आंशिक वर्ग में उस संपत्ति को कुछ डेटा एनोटेशन जोड़ना चाहता हूं। मुझे यह कैसे करना है?आंशिक कक्षा में डेटा एनोटेशन कैसे जोड़ें?

namespace MyApp.BusinessObjects 
{ 
    [DataContract(IsReference = true)] 
    public partial class SomeClass: IObjectWithChangeTracker, INotifyPropertyChanged 
    { 
      [DataMember] 
      public string Name 
      { 
       get { return _name; } 
       set 
       { 
        if (_name != value) 
        { 
         _name = value; 
         OnPropertyChanged("Name"); 
        } 
       } 
      } 
      private string _name; 
    } 
} 

और एक अन्य फ़ाइल में मेरे पास है:

namespace MyApp.BusinessObjects 
{ 
    public partial class SomeClass 
    { 
     private SomeClass() 
     { 
     } 

     [Required] 
     public string Name{ get; set; } 
    } 
} 

वर्तमान में, मैं यह बताते हुए कि नाम संपत्ति पहले से मौजूद कोई त्रुटि मिलती है।

+0

यदि यह संभव है तो मुझे आश्चर्य होगा - आप सबसे अच्छी शर्त बदल रहे हैं कि वर्ग को एनोटेशन को निर्दिष्ट करने की अनुमति देने के लिए स्वचालन कैसे किया जाता है। –

+1

http://stackoverflow.com/questions/1232497/adding-dataannontations-to- जनरेटेड-partial-classes – Reddog

+0

@Will - Ya, मुझे जो त्रुटि मिल रही है, वह संभव नहीं है, उम्मीद है कि एक संभावित डुप्लिकेट है ऑटो-जेन कोड बदलने से बेहतर तरीका। –

उत्तर

16

ऐसा लगता है कि मैं MetadataTypeAttribute का उपयोग कर ऊपर के लिंक के लिए इसी तरह एक अलग तरीके से पता लगा:

namespace MyApp.BusinessObjects 
{ 
    [MetadataTypeAttribute(typeof(SomeClass.Metadata))]{ 
    public partial class SomeClass 
    { 
     internal sealed class Metadata 
     { 
      private Metadata() 
      { 
      } 

      [Required] 
      public string Name{ get; set; } 
     } 
    } 
} 
0

मैं भी है कि एक ही तालिका देखें एक ही तालिका में कई विदेशी कुंजी का समर्थन करने के लिए नीचे दिए गए उपयोग कर रहा हूँ। उदाहरण के लिए, व्यक्ति के दो माता-पिता (पिता और माता) हैं जो दोनों व्यक्ति वर्ग हैं।

[MetadataTypeAttribute(typeof(SomeClassCustomMetaData))] 
public partial class SomeClass 
{ 

} 

public class SomeClassCustomMetaData 
{ 
    [Required] 
    public string Name { get; set; } 
    [InverseProperty("Father")] 
    public virtual Parent ParentClass { get; set; } 
    [InverseProperty("Mother")] 
    public virtual Parent ParentClass1 { get; set; } 
} 
संबंधित मुद्दे