2011-01-25 9 views
6

किसी प्रोजेक्ट के लिए प्रोटोटाइप प्राप्त करने और जितनी जल्दी हो सके चलने के लिए, मैंने डेटा दृढ़ता के लिए LINQ से SQL का उपयोग किया।.NET: LINQ से SQL से Entity Framework

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

इसमें क्या शामिल है? क्या मेरे LINQ से SQL कार्य को ईएफ के लिए पुनः चालू किया जा सकता है? क्या मुझे स्क्रैच से ईएफ के साथ शुरू करना होगा? मैं कहाँ से प्रारम्भ करूँ? कोई सहायक लिंक या सलाह?

+3

"चूंकि यह एक वास्तविक ओआरएम नहीं है, न ही यह उद्यम के उपयोग के लिए था" - स्टैक ओवरफ्लो एल 2 एस का उपयोग करके बनाया गया है - मैं कहूंगा कि यह उद्यम तैयार है! –

+1

@geoff की तरह, एसओ एल 2 एस पर बनाया गया है, इसलिए यह निश्चित रूप से उद्यम में उपयोग करने में सक्षम है। ब्याज का क्या हो सकता है वह समेकन सीमाएं जो आप चल रहे हैं; यहां एक परिप्रेक्ष्य दिया जा सकता है जो आपको अन्य ओआरएम थोक में जाने के बिना उन लोगों को संबोधित करने में मदद कर सकता है। – casperOne

+0

Ok.stackoverflow linq से sql का उपयोग करके बनाया गया है और आप इसे एंटरप्राइज़ प्रोजेक्ट के लिए उपयोग कर सकते हैं। –

उत्तर

3

कई लोग एक ही रूपांतरण कर रहे हैं। एक टेम्पलेट है जिसका उपयोग आप यहां रूपांतरण करने के लिए कर सकते हैं http://blogs.msdn.com/b/efdesign/archive/2009/08/13/linq-to-sql-to-entity-framework-conversion-template.aspx

+1

की बजाय डीबी डिज़ाइन के कारण यह स्पष्ट नहीं है कि "कितने" लोग इस रूपांतरण को कर रहे हैं। यदि आप टिप्पणियों में स्क्रॉल करते हैं, तो आपको यह मिल जाएगा "हालांकि कुछ हित में है, अभी तक इस परियोजना में और निवेश को उचित ठहराने के लिए ब्याज पर्याप्त नहीं है ..." – DOK

+0

यह काम नहीं कर रहा है। – Thea

+0

क्या उस टेम्पलेट का कोई अपडेटेड संस्करण है?यह 3 साल पुराना है इसलिए मुझे इसका इस्तेमाल करने के बारे में संदेह है। – Zack

1

यह एक काफी कठिन समस्या है और मुख्य कारणों में से एक है कि लोगों ने लिंक्टोस्क्ल से कुछ समय तक बचने की सिफारिश की है। माइक्रोसॉफ्ट नहीं चाहता कि लोग LinqToSql का उपयोग कर रहे हों।

आपकी सर्वश्रेष्ठ शर्त शुरू होने की संभावना है और जब आप कर सकते हैं तो कोड का पुन: उपयोग करने की संभावना है (आपके कुछ लिंक प्रश्न स्वचालित रूप से एक के लिए लगभग एक का अनुवाद कर सकते हैं, लेकिन यह भी एक निश्चित बात नहीं है)।

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

आप संभवतः एकमात्र व्यक्ति नहीं हैं जो इस पथ को नीचे ले जाएगा (लिंककॉक्ल से एंटिटीफ्रेमवर्क तक "अपग्रेड" करने का प्रयास कर रहा है), लेकिन इस बिंदु पर समर्थन करने के लिए अच्छी टूलिंग के लिए बाजार की आवश्यकता होने पर यह स्पष्ट नहीं है माइग्रेशन का

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

0

मुझे संदेह है कि किसी प्रकार का स्वचालित रूपांतरण संभव है। कुछ मतभेद हैं। स्केलर रिटर्न वैल्यू के साथ संग्रहीत प्रक्रियाओं को कॉल करने का तरीका सबसे खराब है। EntityFramework मान वापस नहीं करता है, लेकिन प्रभावित पंक्तियों की संख्या। इसके लिए आपके टी-एसक्यूएल में बदलाव की आवश्यकता है। यह किसी भी टेम्पलेट द्वारा नहीं किया जा सकता है। कुछ LINQ2SQL क्वेरी EntityFramework में काम नहीं करती हैं और उन्हें बदलने की आवश्यकता है। बहुवचन में कष्टप्रद अंतर है। ईएफ इतना चालाक होने की कोशिश करो। तालिका UserInfo L2SQL UserInfos के दौरान UserInfoes के रूप में pluralize है। टेबल व्यक्तियों को व्यक्तियों के बजाय पोपल के रूप में बहुवचन किया जाता है। तो आपको इन बहुलकरण को भी बदलने की जरूरत है। यदि आप कनेक्शन के साथ कुछ अग्रिम कार्य का उपयोग करते हैं (कनेक्शन स्ट्रिंग का उपयोग न करें), तो आप इसे अपग्रेड कर सकते हैं। DBConnection EntityConnection के साथ संगत नहीं है। आपको अपने ऐप की इस परत को फिर से लिखना होगा। रूपांतरण टेम्पलेट के लिए बहुत मेहनत।