2010-04-23 6 views
17

लिंक-टू-एसक्यूएल की सापेक्ष सादगी के साथ-साथ इकाई फ्रेमवर्क (विशेष रूप से, the vote of no confidence) के संस्करण 1 पर आधारित सभी आलोचनाओं ने मुझे "समय के लिए" लिंक-टू-एसक्यूएल के साथ जाने के लिए आश्वस्त किया। अब जब ईएफ 4.0 बाहर है, तो मुझे आश्चर्य है कि क्या इसका समय माइग्रेट करना शुरू हो गया है।डंक लिंक-टू-एसक्यूएल अब एंटीटी फ्रेमवर्क 4.0 जारी किया गया है?

सवाल:

  1. क्या पेशेवरों और एफई 4.0 की विपक्ष LINQ करने के लिए-SQL के सापेक्ष हैं?
  2. ईएफ 4.0 आखिरकार प्राइम टाइम के लिए तैयार है?
  3. अब स्विच करने का समय है?
+0

यह उन दोनों में से एक क्यों होना चाहिए? NHibernate, Subsonic, आदि क्यों नहीं? –

+3

@mgroves, मैं .NET ढांचे में निर्मित तकनीक पर ध्यान केंद्रित कर रहा था, लेकिन आप सही हैं, निश्चित रूप से अन्य तकनीकें हैं जो अच्छी या बेहतर भी हो सकती हैं। – devuxer

+0

मुझे यह तरीका पसंद है कि माइक्रोसॉफ्ट आईडीई के साथ अपने ओआरएम पैकेज को एकीकृत करता है। ओपन सोर्स प्रोजेक्ट्स भी ऐसा नहीं करते हैं। –

उत्तर

18

ठीक है, एक अंतहीन बहस :-)

हाँ, मुझे पूरा विश्वास है EF4 निश्चित रूप से प्राइम टाइम के लिए तैयार है - माइक्रोसॉफ्ट सिर्फ खीज और मुद्दों 1.0 रिलीज के साथ के बारे में सभी को संबोधित करने का एक उत्कृष्ट काम किया है ईएफ का

यह प्राइम टाइम के लिए तैयार है - अगर आपको इसकी सभी सुविधाएं चाहिए।

लिंक-टू-एसक्यूएल एक बहुत सीधी, नो-फ्रिल्स, नो-बकवास या मैपर है - यह एक सीएलआर ऑब्जेक्ट में एक डेटाबेस तालिका को मानचित्र करता है - और यह इसके बारे में है। बहुत बुनियादी, बहुत सीधी - लेकिन SQL सर्वर के शीर्ष पर एक पतली परत। दूसरी ओर

EF4 बहुत अधिक है

  • अपने वस्तु अंतरिक्ष में एक वैचारिक डेटा मॉडल
  • अपने डेटाबेस परत पर एक भंडारण डेटा मॉडल
  • दो
  • डेटाबेस के बीच एक मैपिंग परत - निर्भरता

तो यदि आपको वास्तव में एकाधिक डेटाबेस (और केवल SQL सर्वर नहीं) के लिए समर्थन की आवश्यकता है, या यदि यो आपको वास्तव में डेटाबेस संरचना को पूरी तरह से अलग ऑब्जेक्ट मॉडल में बदलने में सक्षम होना चाहिए - EF4 प्रारंभ करने के लिए एक शानदार जगह है।

यदि आपके पास मध्यम आकार के ऐप के लिए एक सरल और सीधा है, तो केवल वस्तुओं को तालिका 1: 1 को आसानी से और तेज़ी से मैप करने में सक्षम होना चाहिए, तो मुझे नहीं लगता कि ईएफ 4 सादगी के मामले में भी करीब आता है और लिंक-टू-एसक्यूएल के लिए प्रदर्शन।

ईएफ 4 बहुत अच्छा है - और यदि आपको इसकी शक्ति की आवश्यकता है - इसके साथ जाओ!

लेकिन यदि आपकी आवश्यकताएं बहुत कम हैं, तो यह केवल ओवरकिल हो सकती है - लिंक-टू-एसक्यूएल (मैं करूंगा) का उपयोग करना जारी रखूंगा और इससे खुश रहूंगा। मुझे लिंक-टू-एसक्यूएल को डंप करने का कोई अच्छा कारण नहीं दिख रहा है - यह अभी भी .NET 4 में पूरी तरह से उपलब्ध है, कुछ bug fixes and improvements के साथ भी आशीर्वाद दिया गया है, और यह कम से कम कुछ वर्षों के लिए होगा।

+0

धन्यवाद, मार्क, +1। मैं आमतौर पर आपके द्वारा रेखांकित किए गए सरल परिदृश्यों के साथ काम करता हूं, इसलिए आपका उत्तर मुझे विश्वास दिलाता है कि मुझे लिंक-टू-एसक्यूएल के साथ रहना चाहिए जब तक कि मेरे पास अधिक जटिल आवश्यकताएं न हों। – devuxer

+0

जब आप एकाधिक डेटाबेस कहते हैं तो आप बस इसके बारे में बात कर रहे हैं कि यह mysql कर सकता है या आप इस बारे में बात कर रहे हैं कि आपको एक ईएफ में अलग-अलग प्रकार के डेटाबेस की आवश्यकता है या नहीं? इसके अलावा इसे ईएफ 4 क्यों कहा जाता है और ईएफ 2.0 एक सुंदर बेवकूफ नामकरण सम्मेलन की तरह नहीं लगता है। अंत में मैं सरल सामान के लिए जाने का आपका बिंदु देखता हूं लेकिन ईएफ के साथ जाना सुरक्षित नहीं होगा क्योंकि आवश्यकताएं हमेशा बदलती रहती हैं और आपको आज की अग्रिम सुविधाओं की आवश्यकता नहीं हो सकती है, लेकिन 2 साल की सड़क जिसकी आपको आवश्यकता हो सकती है और फिर स्विच करना होगा पूरी डेटाबेस परत बाहर? – chobo2

+1

@ chobo2: मेरा मतलब है कि ईएफ 4 एकाधिक डेटाबेस का समर्थन कर सकता है - आप SQL सर्वर, आईबीएम डीबी 2, MySQL और कुछ और से कनेक्ट कर सकते हैं। यदि आप उन्हें एक बार में उपयोग करना चाहते हैं, तो आपको पाठ्यक्रम के एकाधिक ऑब्जेक्ट कॉन्टैक्स होना चाहिए - आप एक ही ऑब्जेक्ट कॉन्टेक्स्ट में कई डेटाबेस मिश्रण नहीं कर सकते हैं। इसे ईएफ 4 कहा जाता है क्योंकि इसे .NET 4 टाइमफ्रेम में रिलीज़ किया गया है - लेकिन यह सिर्फ मार्केटिंग बोल रहा है। हां, यह अभी ईएफ 4 के साथ जाने के लिए "सुरक्षित" हो सकता है - लेकिन मैं बस इतना कह रहा हूं, कई मामलों में, ईएफ 4 एक ओवरकिल होगा और प्रदर्शन के संदर्भ में आपको चोट पहुंचाएगा और इसके जटिलता के कारण अधिक सिरदर्द का कारण होगा –

0

@marc_s, @DanM:

कृपया एक विज्ञापन के रूप में इस पोस्ट पर विचार नहीं करते :) हम सिर्फ Sql को Linq की उन्नत उपयोगकर्ताओं की राय जानना चाहते हैं।

हम में निम्न सुधार को लागू किया है हमारे LinqConnect (LINQ एसक्यूएल सर्वर, ओरेकल, MySQL, PostgreSQL, SQLite के लिए):

- Complex Type 
- Many to Many 
- Batch update operations 
- Recursive support in DataLoad options 
- Query level preload (like Include in EF) 
- TPT support (in LinqConnect 2.0) 

हम भी दूसरे स्तर कैश के लिए समर्थन जोड़ने के लिए योजना है।

क्या ये सुधार आपके लिए मूल्यवान हैं?

+3

"कृपया इसे एक विज्ञापन पर विचार न करें, लेकिन यहां हमारे सामान के लिए एक विज्ञापन है ..." अच्छा प्रयास करें। – Zannjaminderson

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