2009-05-14 11 views
12

स्पष्टीकरण का एक सा: मैं एंटीटी फ्रेमवर्क पर जूलिया लर्मन के ओरेली खिताब ब्राउज़ कर रहा था और मुझे बहुत उलझन में मिला।LINQ या ADO.net इकाई फ्रेमवर्क - जो सीखना है?

मैं चार्ली Calvert की आवश्यक LINQ है, लेकिन Lerman की किताब के साथ अपने 10 मिनट की सत्र से, यह पता चलता है कि LINQ एसक्यूएल जो अपने DataContext वस्तु आदि के साथ underpowered लगता है करने के लिए LINQ है ...

जबकि इकाई की रूपरेखा भविष्य है , लेकिन इसमें एंटीटी एसक्यूएल नामक कुछ है जो मेरी आंखों के लिए बिल्कुल ट्रांजैक्ट-एसक्यूएल की तरह दिखती है। अब मेरी आँख थोड़ा जंग लगी हो सकता है, लेकिन सवाल यह है:

इकाई की रूपरेखा के बाद से मुख्य घोड़ा कि माइक्रोसॉफ्ट का समर्थन कर रहा है, वहाँ LINQ अपने

 var numberGroups = 
      from n in numbers 
      group n by n % 5 into g 
      select new { Remainder = g.Key, Numbers = g }; 

साथ SQL और कर रहा हूँ करने के लिए सीखने में किसी भी बिंदु है मैं सोचने में उलझन में हूं कि एंटीटी एसक्यूएल और LINQ दो अलग-अलग तकनीकें हैं, क्या वास्तव में इकाई एसक्यूएल LINQ का उपयोग करता है?

पोस्ट कई उत्तर मुझे मिल गया:

ठीक है लोग, मैं इस के लिए नया हूँ, इसलिए मैं इस समय मेरे प्रश्न को संपादित कर रहा हूँ ;-) अपने, पूर्ण शीघ्र और बहुत मददगार जवाब के लिए बहुत धन्यवाद। सम्मान मेरमोर्टल

+1

कई लोग भविष्य के रूप में एंटिटी फ्रेमवर्क के बारे में असहमत होंगे: http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/ :) – BobbyShaftoe

+0

दुर्भाग्यवश, वह पत्र है पूरी तरह से अप्रासंगिक। वे तब तक इंतजार कर रहे थे जब तक ईएफ इसे लिखने से पहले ही भेज दिया गया था, इसलिए कुछ बदलाव करने के बारे में पूछने के बजाय उन्हें अनदेखा कर दिया गया था। यह इच्छापूर्ण सोच के रूप में भी गिनती नहीं है। –

+0

तो LINQ से SQL पर लागू LINQ से SQL के साथ सिंटैक्स सीखता है (मुझे पता है कि इकाइयों में मेटाडाटा का वर्णन करने वाला एक बड़ा सेटअप और एक्सएमएल फाइलें हैं) लेकिन उत्तर पाने के लिए यह दोनों मामलों में एक ही प्रश्न है? – MereMortal

उत्तर

9

LINQ भाषा सुविधाओं के लिए एक सामान्य शब्द है जो कुछ प्रकार के डेटा स्टोर पर सी # या वीबी.नेट में प्रश्नों को लिखने की अनुमति देता है। LINQ से SQL, LINQ से Entities, LINQ से ऑब्जेक्ट्स इत्यादि हैं

LINQ से SQL SQL भौतिक डेटाबेस संरचना को बारीकी से मॉडल करता है। यह डेटाबेस में प्रत्येक तालिका के लिए एक प्रकार का उत्पादन करता है। यदि आपका डेटाबेस बदलता है, तो आपके LINQ से SQL कोड को बदलने की आवश्यकता होगी।

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

इसके अलावा, माइक्रोसॉफ्ट ने कहा है कि LINQ से SQL में विकास की तुलना में LINQ से SQL में भविष्य का विकास सीमित होगा। लचीलापन और तथ्य यह है कि LINQ से SQL को कई और संवर्द्धन नहीं मिलेगा, मैं LINQ से Entities और Entity Framework के साथ जाऊंगा।

1

Linq एक प्रोग्रामिंग निर्माण आप अपने वस्तुओं

क्वेरी एक LINQ एसक्यूएल के लिए मुझे लगता है कि आप के बारे में बात कर रहे हैं नहीं है की अनुमति देता है।

आप हमेशा एफई वस्तुओं क्वेरी करने के लिए LINQ का उपयोग कर सकते हैं ...

25

LINQ! = LINQ करने वाली एसक्यूएल

LINQ कुछ भाषा समर्थन सहित अवधारणा है, है। कई कार्यान्वयन हैं - LINQ-to-SQL एक है, जैसा कि एडीओ.NET डेटा सर्विसेज, एंटिटी फ्रेमवर्क की LINQ-to-Entities, LINQ-to-Objects, LINQ-to-SQL, LINQ-to-Amazon, DbLinq, आदि है।

आप अभी भी एंटीटी फ्रेमवर्क के साथ LINQ का उपयोग करते हैं; वास्तव में, LINQ-to-Entities पसंदीदा विकल्प है, संकलन समय स्थिर जांच दे रहा है। एडीएम (एंटिटी डेटा मॉडल) पूछताछ के लिए एंटिटी एसक्यूएल बस एक और तंत्र है (LINQ-to-Entities के अतिरिक्त)।

वहाँ 3 मुख्य कारण है कि ESQL उपयोगी है कर रहे हैं:

  • यह था केवल जब LINQ करने वाली संस्थाओं निर्माणाधीन अभी भी था
  • यह कुछ स्थितियों में इस्तेमाल किया जा सकता जल्दी पूर्वावलोकन में विकल्प जहां वहाँ है कोई ऑब्जेक्ट मॉडल, उदाहरण के लिए रिपोर्टिंग सेवाओं
  • है एक छोटे मामलों की संख्या जहां ESQL अधिक अर्थपूर्ण है

अन्य सभी के लिए, LINQ इकाई फ्रेमवर्क के साथ काम करने के लिए आपका टूल होना चाहिए।

+0

अच्छी तरह से कहा :) linq जानें। –

+0

मार्क, ईएसक्यूएल गतिशील प्रश्नों के लिए भी अच्छा है। निश्चित रूप से आप अभिव्यक्ति कुशलता आदि के साथ एक ही चीजें कर सकते हैं, लेकिन अधिकांश लोग अभिव्यक्ति पेड़ों की तुलना में तारों को बहुत अधिक आरामदायक बनाते हैं। –

+0

एंटिटी एसक्यूएल का उपयोग उन प्रोग्रामिंग भाषाओं के साथ किया जा सकता है जिनके पास LINQ के लिए प्रबंधित सी ++ जैसे समर्थन नहीं है। –

0

इकाई फ्रेमवर्क में LINQ से इकाइयां हैं, इसलिए आप ईएफ के खिलाफ भी वही क्वेरी निष्पादित कर सकते हैं। और मेरा जवाब ईएफ में अधिक निवेश करेगा, क्योंकि अपरिवर्तनीय ईएफवी 4 प्रमोशन प्रतीत होता है।

4

जैसा कि अन्य ने कहा, आप शायद लिंक से SQL बनाम इकाई फ्रेमवर्क का मतलब है।

दोनों SQL सर्वर के लिए काम करते हैं, लेकिन केवल इकाई फ्रेमवर्क अन्य डेटाबेस के लिए काम करेगा। इसके अलावा, LINQ से SQL में, कम या ज्यादा, कम किया गया है। तो इकाई फ्रेमवर्क के साथ जाओ।

1

व्हाउ व्हाओ। वहां धीमा करो।

लघु उत्तर: इकाई की रूपरेखा

लंबे समय तक उत्तर:

एसक्यूएल और इकाई की रूपरेखा के लिए LINQ डेटा का उपयोग प्रौद्योगिकियों हैं।

Linq है, एमएस के अनुसार,

LINQ नेट फ्रेमवर्क के लिए एक्सटेंशन कि धरना भाषा से एकीकृत क्वेरी, सेट का एक सेट है, और संचालन को बदलने। यह प्रश्नों के लिए सी # और मूल भाषा सिंटैक्स के साथ विजुअल बेसिक बढ़ाता है और इन क्षमताओं का लाभ उठाने के लिए कक्षा लाइब्रेरी प्रदान करता है।

से: http://msdn.microsoft.com/en-us/netframework/aa904594.aspx

दोनों LINQ एसक्यूएल और इकाई की रूपरेखा के लिए Linq प्रदाताओं, जो जब उनके खिलाफ की क्वेरी कि भयानक वाक्य रचना के लिए अनुमति देने की है।

0

जो मैं समझता हूं, ईएफ अभी तक प्राइम टाइम के लिए तैयार नहीं है, और यह LINQ2SQL में आज आसानी से काम करने वाले कई LINQ संरचनाओं का समर्थन नहीं करता है।

यदि आप अपने आवेदन के लिए SQL सर्वर पर प्रतिबद्ध कर सकते हैं, तो मैं आज कहता हूं, LINQ2SQL सीखें। LINQ का उपयोग करते समय आपके पास पूछताछ में अधिक क्षमताएं होंगी।

मैं शर्त लगा रहा हूं कि ईएफ तैयार होने पर, यह आपके लिए एक आसान संक्रमण होगा क्योंकि क्वेरी भाषा हस्तांतरण योग्य होनी चाहिए।

शुभकामनाएं।

+0

ईएफ 4 (जो .NET 4.0/VS2010 में शिप करेगा) वर्तमान ईएफ की त्रुटियों और कमी को ठीक करने लगता है और बहुत ही आशाजनक दिखता है! http://blogs.msdn.com/adonet/archive/tags/Entity+Framework/default.aspx –

+0

उस वास्तव में उपयोगी उत्तर लिनस के लिए बहुत धन्यवाद, मैंने खुद को एक ही निष्कर्ष तक पहुंचना शुरू कर दिया था। मैंने तर्क दिया कि ईएफ बहुत विस्तृत है और मुझे ADO.Net कमांड/कनेक्शन/आदि से दूर फाड़ रहा है। LINQ से SQL सीखने के लिए शायद एक अच्छा और उपयोगी पहला कदम है, साथ ही LINQ से SQL के लिए बहुत अच्छे संदर्भ हैं, जबकि ईएफ यह व्यापक रूप से लिखा नहीं है। – MereMortal

0

मैं मॉन्ट्रियल में माइक्रोसॉफ्ट में दिसंबर 2 और 3 पर माइक्रोसॉफ्ट में जाता हूं, और उन्होंने कहा कि वे अब LINQ को कुछ साल में एसक्यूएल का समर्थन नहीं करेंगे, इसलिए लिनक्यू को इकाई (इकाई ढांचे) में सीखना बेहतर होगा।

+0

LINQ से SQL एक अल्पकालिक समाधान था। जैसा कि नाम से पता चलता है कि यह विशेष रूप से केवल SQL सर्वर के साथ काम करता है। दूसरी तरफ ईएफ में कई डेटाबेस के लिए समर्थन है। आप दो प्रौद्योगिकियों की तुलना में पहले लिखा था ब्लॉगपॉस्ट में से एक का उल्लेख कर सकते हैं http://nileshgule.blogspot.com/2010/09/entity-framework-part-2-comparison.html –

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