2011-02-17 14 views
5

में गुणों में विशेषताओं को जोड़ना हम सभी डेटाबेस टेबल और हमारे अनुप्रयोगों में उपयोग किए जाने वाले फ़ील्ड पर मेटाडेटा युक्त डेटाबेस के साथ काम कर रहे हैं। इस मेटाडेटा से, हम कोड उत्पन्न करते हैं जिसमें आंशिक कक्षाएं होती हैं, जो हमारी Linq2Sql इकाइयों को विस्तारित करती हैं।Linq2Sql DBML

हमारे पास हमारे मेटाडेटा में "अप्रचलित" ध्वज जोड़ने का विचार था, जो बदले में लिंक ऑब्जेक्ट में ध्वजांकित प्रस्तुतियों में अप्रचलित विशेषता को जोड़ना चाहिए। (पुराने क्षेत्रों का उपयोग करके हमारे कोड में चेतावनियां उत्पन्न करना)

क्या इस प्रकार का विस्तार आंशिक वर्ग में संभव है? आंशिक कक्षा फ़ाइल में किसी संपत्ति में केवल एक विशेषता जोड़ने के लिए? यह "आंशिक संपत्ति" की तरह बहुत कुछ लगता है, मैंने जो कुछ भी खरीदा था वह .NET में मौजूद नहीं था।

+1

क्या आपको अभी तक इसका समाधान मिला है? मैं वही काम करने की कोशिश कर रहा हूं। http://stackoverflow.com/questions/4651843/where-to-put-data-annotations-tags यह पोस्ट सही रेखाओं के साथ दिखता है, लेकिन मैं इसे काम नहीं कर सकता। – Banford

+0

क्षमा करें, इस प्रश्न का खो गया ट्रैक। मैंने कुछ शोध किया, और यह .NET में आंशिक कक्षा प्रणाली की दुर्भाग्यपूर्ण कमी है। उम्मीद है कि वे किसी दिन किसी अन्यथा भयानक भाषा सुविधा में जोड़ देंगे। –

+0

इसे जांचें, मैंने पहले ही इस प्रश्न का उत्तर दिया है http://stackoverflow.com/a/24757520/3050647 – elia07

उत्तर

0

हां डीबीएमएल के माध्यम से स्वचालनित कक्षाओं में विशेषताओं को जोड़ने के लिए आंशिक कक्षाओं का उपयोग करना संभव है।

मैं लिंकक 2 एसक्यूएल उत्पन्न करने वाले वर्गों में कंपाइलर जेनरेटेड विशेषता जोड़ने के लिए इसका उपयोग करता हूं। उदाहरण के लिए:

[System.Runtime.CompilerServices.CompilerGenerated()] 
public partial class MyDataContext : System.Data.Linq.DataContext {} 

[System.Runtime.CompilerServices.CompilerGenerated()] 
public partial class tblInsurance { } 
+0

धन्यवाद, लेकिन मुझे आंशिक वर्ग के गुणों में विशेषताओं को जोड़ने की आवश्यकता है, न कि कक्षा । –

1

हाँ, MetadataType विशेषता देखें।

अच्छा उदाहरण here। इस संदर्भ में, वे सत्यापन के प्रयोजनों के लिए विशेषताओं को जोड़ना चाहते हैं, लेकिन कोई कारण नहीं है कि आप अशुभता को इंगित करने के लिए ऐसा नहीं कर पाएंगे।

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