2009-03-06 16 views
9

मैं लिंक दुनिया के लिए नया हूं और वर्तमान में इसे खोज रहा हूं। मैं अपने अगले प्रोजेक्ट में इसका उपयोग करने के बारे में सोच रहा हूं जिसमें डेटाबेस इंटरैक्शन शामिल है।लिंक से एसक्यूएल या लिंक से डेटासेट?

जो कुछ से मैं पढ़ लिया है, मुझे लगता है कि डेटाबेस के साथ बातचीत करने के लिए 2 अलग तरीके हैं: डेटासेट

अब करने के लिए उत्पाद है कि मैं कर रहा हूँ

  • LINQ एसक्यूएल को

    • Linq पर काम, डेटाबेस के प्रकार पर भरोसा नहीं कर सकते हैं। उदाहरण के लिए, इसे SQL सर्वर/ओरेकल के साथ तैनात किया जा सकता है।

      अब मेरी प्रश्न हैं:

      1. अगर मैं एसक्यूएल को Linq का उपयोग करें, मैं एसक्यूएल सर्वर केवल के साथ फंस कर रहा हूँ?
      2. मुझे लगता है कि मैं SQL सर्वर और ऑरैकल दोनों के लिए लिंकसेट से डेटासेट का उपयोग कर सकता हूं। लेकिन अगर मैं एसक्यूएल सर्वर के लिए लिंकसेट से डेटासेट (लिंक से एसक्यूएल ऑफकर्स की तुलना में) का उपयोग करता हूं तो मैं कुछ (प्रोग्रामिंग, प्रदर्शन, विश्वसनीयता इत्यादि की आसानी) खो देता हूं।
  • +0

    और तीसरा विकल्प: एडीओ इकाई फ्रेमवर्क (लिंक से इकाइयों के शीर्ष पर) – RobS

    उत्तर

    11

    आप # 1 के बारे में सही हैं - लिंक से एसक्यूएल केवल SQL सर्वर डेटाबेस के खिलाफ काम करेगा।

    यदि आप विभिन्न डेटा स्रोतों (विभिन्न प्रदाताओं का उपयोग करके) तक पहुंचने की क्षमता चाहते हैं तो मैं एडीओ इकाई फ्रेमवर्क के साथ जाऊंगा। आपको पीओसीओ जैसी इकाइयों का उपयोग करने के मामले में समान लचीलापन मिलता है और अधिक उन्नत/जटिल कार्यान्वयन के लिए विस्तार करना काफी आसान है।

    मेरी वर्तमान परियोजना पर, हम लिंक से एसक्यूएल का उपयोग कर रहे हैं और यह ठीक है, लेकिन हमारे पास कई मुद्दों पर काबू पाने के लिए हैं। मुझे एक्स्टेंसिबिलिटी के मामले में कभी-कभी थोड़ा सा सरल पाया गया है। मैंने लिंक से एसक्यूएल और एंटिटी फ्रेमवर्क here के संबंध में एक (बेहतर) प्रतिक्रिया लिखी।

    प्रश्न # 2 के संबंध में - मुझे यकीन नहीं है कि मैं डेटासेट पर वापस जाना चाहूंगा। आईएमएचओ वे अतीत की बात करते हैं, लेकिन उपयोगी हो सकते हैं यदि आपके पास विशिष्ट नियंत्रण (जैसे इंफ्राजिस्टिक्स) के साथ एक सभ्य टूलकिट है। हालांकि, मुझे तेजी से लेनदेन प्रणाली के लिए उनके ओवरहेड बहुत महंगा लगता है। कार्यान्वयन में लिंक से एसक्यूएल या इकाई फ्रेमवर्क की आधा कार्यक्षमता नहीं है।

    3
    1. हाँ, यह केवल SQL सर्वर है। इसके अतिरिक्त, माइक्रोसॉफ्ट ने एल 2 एस जमे हुए हैं और इसे और परिशोधित नहीं करेंगे। लेकिन यह एक अच्छा ढांचा है, वास्तव में अच्छा प्रदर्शन करता है और उपयोग करना आसान है।
    2. डाटाबेस से लिंक डीबी से डेटा प्राप्त करने के बाद डेटासेट को डेटासेट तक पहुंचता है। लिंक से एसक्यूएल वास्तव में गतिशील एसक्यूएल क्वेरी बनाने के लिए IQueriable का उपयोग करता है। कई मामलों में, एल 2 एस बहुत बेहतर प्रदर्शन करेगा, और आपको डीबी कोड लिखने से बचाएगा।

    आपको लिंक से इकाइयों में देखना चाहिए। यह सबसे पूर्ण उड़ा फ्रेमवर्क उपलब्ध है। अभी, यह मुख्य रूप से SQL सर्वर के लिए है, लेकिन आपको समय पर ओरेकल आदि के लिए समर्थन मिलेगा।

    2
    1. आप केवल SQL सर्वर के साथ अटक नहीं गए हैं। सिद्धांत में आप किसी भी डेटाबेस के लिए एक linq प्रदाता का निर्माण कर सकते हैं। लिंकक से ओरेकल http://www.codeplex.com/LinqToOracle के लिए कोडप्लेक्स पर एक प्रोजेक्ट है। मैंने इसे खुद कोशिश नहीं की है।

    2. डेटासेट में डेटा कैसे प्राप्त होगा?मुझे नहीं लगता कि आप एक संपूर्ण टेबल को डेटासेट में लाने जा रहे हैं? यह एक गंभीर प्रदर्शन समस्या होगी। यदि आप लिंक से डेटासेट का उपयोग करने जा रहे हैं तो आपको SQL से SQL क्वेरी बनाने के बजाय डेटाबेस से डेटा प्राप्त करने के लिए स्वयं को सभी SQL क्वेरी लिखना होगा। तो आपको वास्तव में पहले डेटाबेस से पूछना होगा और फिर डेटासेट से पूछना होगा। मुझे डबल काम की तरह लगता है ...

    1

    जब आप लिंक से SQL का उपयोग करते हैं, तो आप SQL सर्वर के साथ बहुत अधिक अटक जाएंगे, जहां तक ​​मुझे पता है।

    यदि आप लिंक से डेटासेट का उपयोग करते हैं, तो आप प्रोग्रामिंग की थोड़ी आसानी खो देंगे: लिंक के साथ, आप डेटासेट्स के साथ सीधे लिंक इकाइयों का उपयोग कर सकते हैं, आपको डेटासेट नाम का उपयोग करना होगा (MyDataSet.Entity = new MyDataSet.Entity()), जो थोड़ी देर के बाद पुराना हो जाता है। मुझे लगता है कि यह एकमात्र बलिदान है।

    हालांकि, आप इसे उदा साथ उपयोग कर सकते हैं ओरेकल (एक परियोजना पर किया था)। डेटाएडाप्टर पर थोड़ा अधिक नियंत्रण के साथ यह बहुत अधिक ड्रैग-एंड-ड्रॉप है (जहां तक ​​मुझे पता है - मुझे कभी भी लिंक-टू-एसक्यूएल को ट्विक नहीं करना पड़ा), आप निर्दिष्ट कर सकते हैं (उदाहरण के लिए) कौन से प्रश्नों का उपयोग करना है , आदि

    के बाद आप अभी भी डेटासेट में तालिकाओं के बीच संबंधों को परिभाषित कर सकते हैं, तब भी आप Linq काफी अच्छी तरह से उपयोग कर सकते हैं, तो आप वास्तव में नहीं देखते समस्याओं देखेंगे।

    मुझे लगता है कि लिंक-टू-डेटासेट के साथ लिंकक-टू-एसक्यूएल (कभी समस्या नहीं थी) के साथ विश्वसनीयता उतनी ही अच्छी है, प्रदर्शन काफी अच्छा प्रतीत होता है, हालांकि वास्तव में इसे कभी भी प्रोफाइल नहीं कर सकता है।

    4

    अपने पहले सवाल का जवाब करने के लिए:

    LinqToOracle

    DbLinq

    बाद समर्थन अधिक डेटाबेस, SQLite तरह: नहीं, ओरेकल के लिए LINQ प्रदाताओं के अन्य कार्यान्वयन, उदाहरण के लिए कर रहे हैं।

    इसके अलावा ADO.NET Entity Framework चेकआउट।

    1

    आप केवल एसक्यूएल सर्वर के लिए अटक नहीं कर रहे हैं। हम ओरेकल, MySQL, PostgreSQL, और SQLite सर्वर के लिए LINQ से SQL कार्यान्वयन की पेशकश करते हैं। अधिक जानकारी प्राप्त करें here LINQ से SQL तकनीक की तुलना में डेटासेट इतने सुविधाजनक नहीं हैं। एक विकल्प के रूप में इकाई फ्रेमवर्क विकल्प देखें। आप एक वैचारिक मॉडल के साथ कई स्टोरेज मॉडल लिखने में सक्षम हैं और फिर समानांतर में SQL सर्वर और ओरेकल डेटाबेस का उपयोग करते हैं।

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