2008-10-17 17 views
15

चलो कहते हैं कि मैं एक मेज एक्सएमएल प्रकार के डेटा का एक स्तंभ है कि करते हैं। एसक्यूएल के भीतर, मैं निम्नलिखित बयान पर अमल कर सकते हैं:लिंक से SQL में XQuery का उपयोग कर?

select top 10 *, 
     Content.value('(/root/item/value)[1]', 'float') as Value 
from  xmltabletest 
where Content.value('(/root/item/MessageType)[1]', 'int') = 1 

परिणाम सेट केवल मापदंड से मेल खाते रिकॉर्ड में शामिल है, और यह एक स्तंभ 'मान' कहा जाता है में एक्सएमएल से कोई मान निकालता है। अच्छा और सरल

एक ही बात Linq के साथ प्राप्त किया जा सकता है SQL करने के लिए?

मैं बड़े कार्य करने करने के लिए एसक्यूएल पाने के लिए और केवल बल्कि चयन करने के लिए, हस्तांतरण की तुलना में मेरी मापदंड से मेल खाने डेटा वापस, और फिर डेटा की एक संभावित बड़े पैमाने पर हिस्सा पर कार्रवाई चाहते हैं। जहां तक ​​मैं यह कह सकता हूं कि इस समय यह संभव नहीं है, लेकिन मैंने सोचा कि मुझे पूछना चाहिए।

(पर्यावरण .NET 3.5 है, VS2008, SQL सर्वर 2005 है कि मदद करता है)

+0

मैं एक ही समस्या में आया हूं और इसे डेटा प्रोटेक्स का उपयोग करके या डेटाकॉन्टेक्स्ट –

+0

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

उत्तर

5

मैं बिल्कुल यकीन है कि अगर यह अब पुराने हो चुके है नहीं कर रहा हूँ, लेकिन Scott Guthrie एक्सएमएल डेटाटाइप्स के अनुसार कर रहे हैं:

का प्रतिनिधित्व के रूप में LINQ में तार संस्थाओं SQL करने के लिए। आप अपने LINQ से एसक्यूएल एंटीटी में एक्सएमएल कॉलम पर क्वेरी करने के लिए XLINQ का उपयोग कर सकते हैं - लेकिन यह क्वेरीिंग आपके मध्य-स्तर ( एएसपी.नेट के भीतर) में होती है। आप डेटाबेस के खिलाफ एक दूरस्थ XQuery निष्पादित और कि पहली रिलीज में के आधार पर फ़िल्टर परिणाम वापस नहीं कर सकते हैं।

तो आपके प्रश्न के उत्तर में, मैं "नहीं" कहूंगा।

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