2009-05-21 11 views
20

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

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

उदाहरण के लिए, लोड लोड()? WTF? अगर मैं वह डेटा नहीं चाहता था, तो मैं इसके लिए नहीं पूछूंगा! एंटिटी फ्रेमवर्क के गुदा क्विर्क के बारे में पता लगाना मेरी तरफ एक बड़ा कांटा बन रहा है।

वैसे भी ... सुरंग के अंत में एक प्रकाश है? जब मैं सब कुछ करूँगा, तो ईएफ का उपयोग करने के लायक होगा, या मैंने एक भयानक निर्णय लिया है?

अंत में, मैं पूछना चाहूंगा: माइक्रोसॉफ्ट पूरी ओआरएम चीज़ के साथ कहां रहा है? रेल्स एक्टिव रिकार्ड अब वर्षों से सुंदर और आसानी से काम कर रहा है।

+1

प्रति जवाब नहीं, लेकिन अभी भी एक समाधान है; ActiveRecord ... L2S सलाह के लिए –

उत्तर

11

आप अपने दर्द में अकेले नहीं हैं। a series of posts on the ADO.NET blog ने .NET 4.0 में एंटीटी फ्रेमवर्क में किए जा रहे संवर्द्धन पर चर्चा की है। वे बहुत महत्वपूर्ण प्रतीत होते हैं, लेकिन चाहे वे आपकी जरूरतों के लिए पर्याप्त हैं या नहीं, केवल आप ही न्याय कर सकते हैं।

+0

लिंक के लिए धन्यवाद। यह निश्चित रूप से लगता है जैसे वे अपने लक्ष्यों को सकारात्मक दिशा में बदल रहे हैं। और ऐसा लगता है कि वे एक सुलभ तरीके से आलसी लोडिंग का उपयोग करने की योजना बना रहे हैं। – grimus

7

ठीक है, VS2010 beta is available; आप वर्चुअल मशीन को स्पिन कर सकते हैं और देख सकते हैं कि 4.0 में ईएफ आपको बेहतर बनाता है या नहीं?

व्यक्तिगत रूप से, मैं अब LINQ-to-SQL के साथ फंस गया हूं, लेकिन शायद इसलिए कि मुझे अभी तक अन्य सुविधाओं की आवश्यकता नहीं है।

+0

+1 - मैं उस पर आपके साथ 100% हूं। ईएफवी 4 के लिए - फीचर्स के अनुसार वे ईएफ के साथ प्रगति कर रहे हैं (हालांकि मुझे वीएफ -2010 बीटा के "डेटाबेस से अपडेट मॉडल" विज़ार्ड के साथ एक ईएफ मॉडल को अनुपयोगी बनाने के लिए मुझे वास्तव में 20 सेकंड लग गए थे। हालांकि, मैं ईएफवी 4 द्वारा उत्पन्न एसक्यूएल के बारे में अधिक चिंतित हूं - मैंने परीक्षण किए गए परीक्षणों के पहले दौर में (अभी तक) एसक्यूएल जेनरेटर बग को ठीक नहीं किया है जो बहुत सारे अनावश्यक जुड़ने आदि के साथ राक्षस प्रश्न उत्पन्न करता है ... ... ओह ठीक है, यह अभी भी बीटा है इसलिए शायद ईएफवी 4 आरटीएम बेहतर होगा ... – KristoferA

3

मैं वास्तव में अपने वी 4 संस्करण में एंटीटी फ्रेमवर्क का उपयोग करने की उम्मीद कर रहा हूं उम्मीद है कि रियल जल्द ही। अनुमोदित, हमारे मामले में यह एक ईश्वर-भयानक घर में ओआरएम से छुटकारा पाने के साथ है जो अब समर्थित नहीं है, जो प्लेग से भी बदतर है - इसलिए ईएफ v4 भगवान की तरह दिखता है-मुझे भेजें! :-)

मार्क

3

मैं एक के लिए एफई v1.0 साथ sourly निराश किया गया है। इसने बहुत वादा किया, लेकिन हकीकत में यह बेहद प्रतिबंधित था, भयंकर प्रदर्शन किया, और मौजूदा अनुप्रयोगों और बुनियादी ढांचे का समर्थन नहीं किया।

उस ने कहा, ईएफ v2.0 बहुत ही आशाजनक दिखता है। माइक्रोसॉफ्ट ने जनता को डिजाइन प्रक्रिया खोला है, जिससे हममें से उन लोगों को इजाजत मिलती है जो ईएफ सफल होने की इच्छा रखते हैं और देखते हैं कि विभिन्न प्रकार के उपयोग परिदृश्यों में फिट है या नहीं, जो वास्तव में हमारे सुझाव, सलाह और राय प्रदान करते हैं।

आप इस प्रयास का परिणाम देखने में रुचि रखते हैं, या अपने स्वयं के इनपुट प्रदान करना चाहते हैं, तो आप एफई डिजाइन ब्लॉग, यहाँ की जांच करनी चाहिए: http://blogs.msdn.com/efdesign/

अंत में, अगर माइक्रोसॉफ्ट अभी भी सक्षम नहीं है एक लचीला ओआरएम उत्पादन करने के लिए जो विभिन्न प्रकार के परिदृश्यों में फिट बैठता है, हमेशा एनएचबीर्नेट होता है। मैं LINQ से SQL, Entity Framework, और NHibernate का उपयोग थोड़ी देर के लिए कर रहा हूं, और तीन में से, NHibernate सबसे दोस्ताना, लचीला और परिपक्व ढांचा है। इसमें दृश्य डिजाइनरों के रास्ते में बहुत कुछ नहीं है, लेकिन यदि आप सीमाओं, quirks, अजीब व्यवहार और ईएफ के खराब प्रदर्शन से निराश हैं, NHibernate एक अच्छा विकल्प है।

+1

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

2

के लिए एक अप का पालन करें:

मैं समय इकाई की रूपरेखा पर होने के लिए छोड़ दिया गया है। कोड पुनर्लेखन tramatizing रहा है और मैं परिणाम से खुश नहीं हूँ ... बड़े पैमाने पर आलसी लोडिंग समर्थन की कमी के कारण।

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

+0

मैंने ईएफ के साथ भी शुरुआत की, और अच्छे पुराने Linq2Sql पर वापस जाने का फैसला किया। न केवल quirks चले गए हैं, Linq2Sql कुछ मामलों में बेहतर/तेज एसक्यूएल भी बनाता है (ईएफ उदाहरण के लिए LIKE कथन का उपयोग नहीं करता है)। – Gidon

3

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

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