के लिए एन-स्तरीय एप्लिकेशन में मजबूत टाइप किए गए डेटासेट का उपयोग करने के तरीके के बारे में प्रश्न मुझे Visual Studio द्वारा जेनरेट किए गए ADO.NET में मजबूत टाइप किए गए डेटा सेट पर कुछ विशेषज्ञ सलाह चाहिए। यहाँ विवरण हैं। पहले ही, आपका बहुत धन्यवाद।.NET
मैं एक एन स्तरीय आवेदन जहां प्रस्तुति परत सी #/विंडोज़ रूपों में है लिखना चाहते हैं, व्यापार परत एक वेब सेवा है और डेटा एक्सेस परत एसक्यूएल डाटाबेस है।
इसलिए, मैंने इसके लिए विजुअल स्टूडियो 2005 का उपयोग किया और समाधान में 3 परियोजनाएं बनाईं।
प्रोजेक्ट 1 डेटा एक्सेस लेयर है। इसमें मैंने एक मजबूत टाइप किए गए डेटा सेट और टेबल एडेप्टर बनाने के लिए विजुअल स्टूडियो डेटा सेट जेनरेटर का उपयोग किया है (टेस्ट करने के लिए मैंने इसे उत्तरविंड में ग्राहक तालिका पर बनाया है)। डेटा सेट को नॉर्थविंडडाटासेट कहा जाता है और अंदर की तालिका ग्राहकटेबल है।
प्रोजेक्ट 2 में वेब सेवा है जो केवल 1 विधि का खुलासा करती है जो GetCustomersDataSet है। यह डेटा सेट भरने और कॉलर पर वापस करने के लिए प्रोजेक्ट 1 लाइब्रेरी के टेबल एडेप्टर का उपयोग करता है। NorthWindDataSet और तालिका एडाप्टर का उपयोग करने में सक्षम होने के लिए, मैंने प्रोजेक्ट 1 का संदर्भ जोड़ा।
प्रोजेक्ट 3 एक जीत फ़ॉर्म ऐप है और यह संदर्भ के रूप में वेब सेवा का उपयोग करता है और डेटा सेट प्राप्त करने के लिए उस सेवा को कॉल करता है ।
पी एल में, इस आवेदन के निर्माण की प्रक्रिया में, मैं परियोजना 1 में और फ़ॉर्म की भार में ऊपर जेनरेट मैं वेब सेवा को कॉल और वेब सेवा से प्राप्त डेटासेट आवंटित डेटासेट के लिए एक संदर्भ जोड़ा इस डेटासेट में। लेकिन मैं त्रुटि मिलती है:
Cannot implicitly convert type 'PL.WebServiceLayerReference.NorthwindDataSet' to 'BL.NorthwindDataSet' e:\My Documents\Visual Studio 2008\Projects\DataSetWebServiceExample\PL\Form1.cs
दोनों डेटा सेट एक ही हैं, लेकिन क्योंकि मैं अलग-अलग स्थानों से संदर्भ कहा, मैं उपरोक्त त्रुटि मुझे लगता है कि हो रही है।
तो, मैंने जो किया वह प्रोजेक्ट 1 (जो डेटा सेट को परिभाषित करता है) के लिए प्रोजेक्ट 3 (यूआई) में एक संदर्भ जोड़ा गया और डेटासेट प्राप्त करने और सही प्रकार पर assing करने के लिए वेब सेवा का उपयोग किया, अब जब प्रोजेक्ट 3 (जिसमें वेब फॉर्म है) चलता है, मुझे नीचे रनटाइम अपवाद मिलता है।
System.InvalidOperationException: There is an error in XML document (1, 5058). ---> System.Xml.Schema.XmlSchemaException: Multiple definition of element ' http://tempuri.org/NorthwindDataSet.xsd:Customers ' causes the content model to become ambiguous. A content model must be formed such that during validation of an element information item sequence, the particle contained directly, indirectly or implicitly therein with which to attempt to validate each item in the sequence in turn can be uniquely determined without examining the content or attributes of that item, and without any information about the items in the remainder of the sequence.
मुझे लगता है कि यह कुछ क्रॉस संदर्भ त्रुटियों के कारण हो सकता है।
मेरा प्रश्न है, दृश्य स्टूडियो जेनरेट डेटासेट्स का उपयोग इस तरह से करने का एक तरीका है कि मैं सभी परतों (पुन: उपयोग के लिए) में एक ही डेटासेट का उपयोग कर सकता हूं लेकिन तालिका एडाप्टर तर्क को डेटा एक्सेस लेयर में अलग कर सकता हूं ताकि सामने के अंत वेब सेवा द्वारा इस सब से सार है?
यदि मेरे पास हाथ लिखने वाला कोड है तो मैंने डेटा सेट जनरेटर की भलाई खो दी है और यदि कॉलम बाद में जोड़े गए हैं तो मुझे इसे हाथ से जोड़ना होगा, इसलिए मैं जितना संभव हो सके विजुअल स्टूडियो विज़ार्ड का उपयोग करना चाहता हूं।
धन्यवाद। ऊपर वर्णित विषयों के बारे में मैं और कहां से जान सकता हूं? साथ ही, यह एक विरासत परियोजना है इसलिए मौजूदा कोड (बड़े कोड बेस) को नए प्रतिमान में स्थानांतरित करने के लिए पॉइंटर मदद कर सकता है लेकिन मेरे पास आगे बढ़ने पर बहुत लचीलापन नहीं हो सकता है ... –
मैंने अपनी टिप्पणी के लिंक जोड़े – vittore
आपके लिए धन्यवाद संकेत! –