2009-03-22 14 views

उत्तर

29

ADO.NET .NET Framework (जावा में जेडीबीसी की तरह) के लिए अंतर्निहित डेटा एक्सेस API है। यह .NET की पहली रिलीज के बाद से आसपास रहा है।

LINQ से SQL एक डेटा एक्सेस फ्रेमवर्क है जो ADO.NET पर बनाया गया है और नई भाषा विशेषताएं जो प्रोग्रामिंग की ऑब्जेक्ट उन्मुख शैली में SQL सर्वर डेटा को मूल रूप से उपलब्ध कराती हैं।

7

इन दोनों प्रौद्योगिकियों कि वास्तव में एक छोटी अतः पोस्ट में शामिल नहीं किया जा सकता है के बीच मतभेद की एक काफी बड़े सेट नहीं है, लेकिन मैं प्रकाश डाला

को कवर करने की कोशिश करेंगे
  • Linq2Sql में आप में आपके प्रश्नों के ऊपर लिखने मेमोरी ऑब्जेक्ट्स हुड के तहत हालांकि आपके द्वारा लिखे गए कोड को अभिव्यक्ति पेड़ों में अनुवादित किया जाता है और आगे चलने पर एसक्यूएल में अनुवाद किया जाता है जहां क्वेरी वास्तव में चलती है। ADO.Net में आप सीधे SQL क्वेरी बनाते हैं जो सर्वर के विरुद्ध चलाए जाते हैं।
  • लिंक 2 एसक्यूएल सी # और वीबी.Net में प्रत्यक्ष भाषा समर्थन है। ADO.Net स्ट्रिंग आधारित क्वेरी के लिए समर्थन प्रदान करता है जिसमें केवल कच्ची स्ट्रिंग के अलावा 0 भाषा समर्थन है।
  • Linq2Sql में भाषा समर्थन क्वेरी प्रकार सुरक्षित बनाता है। ADO.Net में सभी क्वेरी परिणामों को उचित प्रकार में परिवर्तित किया जाना चाहिए जो अनिवार्य रूप से टाइप सुरक्षा जांच को हटा देता है।
1

ADO.NET कक्षा पुस्तकालयों का एक सेट है जो .NET बेसिक क्लास पुस्तकालयों के शीर्ष पर मूल डेटा पहुंच आधारभूत संरचना प्रदान करता है। इसमें बुनियादी LINQ आधारभूत संरचना भी शामिल है, जैसे कि संख्यात्मक स्थिर श्रेणी (जो ऑब्जेक्ट को LINQ प्रदान करती है) और IQueryable जैसे संबंधपरक डेटा के विरुद्ध मूल क्वेरी करने के लिए एक इंटरफेस।

LINQ से SQL एक डेटा एक्सेस फ्रेमवर्क नहीं है।

ADO.NET को डेटा एक्सेस फ्रेमवर्क के रूप में माना जा सकता है, लेकिन यह भ्रामक हो सकता है, क्योंकि ADO.NET एक स्टैंडअलोन उत्पाद नहीं है। ADP.NET वास्तव में .NET Framework का हिस्सा है।

LINQ से SQL केवल LINQ का कार्यान्वयन डेटा प्रदाता के रूप में कार्य करने के लिए है जो सीधे SQL सर्वर से कनेक्ट और मैप्स करता है। LINQ से SQL के नीचे, System.Data.SQL क्लाइंट नामस्थान में ADO.NET कक्षाओं के भारी उपयोग शामिल हैं, इसलिए इसे ADO.NET के शीर्ष पर लागू किया गया है लेकिन यह SQLServer तक पहुंचने के लिए विशिष्ट है और यह विशिष्ट है।

2

इसके अलावा, वास्तव में यह सुनिश्चित नहीं है कि मैं यहां हूं या नहीं। लेकिन एडीओ.NET हमेशा आपके डेटा के साथ 'ऑफ़लाइन' काम कर रहा है। मुझे लगता है कि LINQ2SQL आपके डेटा के साथ ऑनलाइन काम कर रहा है।

+1

यह वास्तव में मामला नहीं है। यदि आप डेटासेट भरने के लिए ADO.NET डेटा एडाप्टर का उपयोग करते हैं तो आप 'ऑफ़लाइन' काम कर रहे हैं। हालांकि डेटा रीडर के साथ आप ऑनलाइन (कनेक्टेड) ​​के रूप में हो सकते हैं .... –

8

आपको समझने की शुरुआत करनी है कि LINQ माइक्रोसॉफ्ट के इरादे के एक पैराग्राइम के रूप में एक उपकरण के साथ घोषित रूप से सभी प्रकार के पूछताछ डेटा के बारे में पूछताछ करने के लिए है - सोचें "एक अंगूठी उन्हें नियम दें"। LINQ से SQL केवल पहला अभिव्यक्ति है, जो संबंधपरक डेटाबेस क्वेरी करने के लिए लागू किया गया है।

वास्तव में, माइक्रोसॉफ्ट के पास LINQ के एसक्यूएल के संबंध में मिश्रित संदेश है। मुझे लगता है कि समस्या यह है कि इसे अन्य अमूर्त रणनीतियों के लिए एक विकल्प के रूप में समझा जा गया है, और अब इसे अक्सर प्रोग्रामर के लिए एसक्यूएल में कुशल बनने की आवश्यकता से बचने के लिए एक तरीका माना जाता है।

एडीओ.Net ओओपी का मानना ​​है कि यह क्या है, और इसके संबंध में डेटा को रिलेशनल करता है, और उम्मीद है कि आप प्रत्येक को अपनी शर्तों पर सही तरीके से करें।

दोनों के फायदे और नुकसान बहस के लिए खुले हैं।लेकिन अगर आप सहमत हैं कि माइक्रोसॉफ्ट के कंप्यूटर साइंस विज़ार्ड संरचित डेटा पूछताछ के लिए उबर-अमूर्तता के साथ आए हैं, तो आप शायद इस दिशा में आगे बढ़ना चाहेंगे। कुछ संकेत हैं कि अन्य सॉफ्टवेयर उत्पाद प्रदाता साथ खेलने के लिए तैयार हैं, इसलिए यह पूरी तरह मालिकाना होने का अंत भी नहीं हो सकता है, जो एक अच्छी बात होगी।

1

निम्न आरेख ADO.NET LINQ प्रौद्योगिकियों उच्च स्तरीय प्रोग्रामिंग भाषाओं और LINQ सक्षम डेटा स्रोतों से संबंधित के एक सिंहावलोकन प्रदान करता है।

LINQ and ADO.NET http://i.msdn.microsoft.com/dynimg/IC176601.gif

http://msdn.microsoft.com/library/vstudio/bb399365

से LINQ आप कोड जहां संकलक का मूल्यांकन करें और IntelliSense साथ और इतने पर आपकी मदद कर सकता के हिस्से में ADO.NET एकीकृत करने के लिए मदद करता है। तो LINQ के साथ आप ADO.NET का अधिक आसानी से उपयोग कर सकते हैं ...