2009-09-01 15 views
7

इकाई एसक्यूएल का उद्देश्य क्या है, मेरा मतलब है कि यदि आपके पास इकाइयों के लिए linq है तो आपको स्ट्रिंग में प्रश्न लिखने की आवश्यकता क्यों होगी, क्या कोई प्रदर्शन कारण या कुछ है?इकाई फ्रेमवर्क इकाई एसक्यूएल बनाम linq इकाइयों को

उत्तर

9

LINQ से संस्थाएं आपको अपने डेटाबेस की प्रत्येक सुविधा तक पहुंचने की अनुमति नहीं देती हैं। डेटाबेस में "पहुंचने" में सक्षम होने के कारण कभी-कभी उन्नत प्रश्नों के लिए जरूरी होता है, या तो उन्हें पहले स्थान पर खींचने के लिए या कभी-कभी भयानक विकल्पों में सुधार करने के लिए जो LINQ से Entities सिस्टम आपकी क्वेरी के बारे में बताएगा।

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

2

ESQL आपको किसी खंड पर एक संयोजन चुनने की अनुमति देता है, जो कि LINQ-to-Anything में समर्थित नहीं है। यह वास्तव में उपयोगी हो सकता है। ESQL आपको एक दूसरे से प्राप्त होने वाले सटीक प्रकार को निर्दिष्ट करने की अनुमति देता है (जैसा कि LINQ के OfType के विपरीत है, जो एक निश्चित प्रकार और किसी उप प्रकार के उदाहरण देता है)। इसके अलावा, मैं इसका उपयोग करने के लिए एक महान कारण नहीं सोच सकता। स्ट्रिंग में प्रश्न बनाने में सक्षम होना कभी-कभी अच्छा होता है, लेकिन डायनामिकQuery/डायनामिक LINQ आमतौर पर बहुत दुर्लभ मामलों में पर्याप्त होता है जहां यह आवश्यक है।

मुझे लगता है (शायद गंभीर रूप से) कि ESQL का "वास्तविक" उद्देश्य "यह LINQ की भविष्यवाणी करता है।"

गोडके के गैर-इष्टतम प्रश्नों को ठीक करने के बिंदु के बारे में, मुझे अभी तक एक देखना नहीं है कि मैं LINQ अभिव्यक्ति को बदलकर ठीक नहीं कर सकता। ईएसक्यूएल और एल 2 ई दोनों सीसीटी के रूप में समाप्त होते हैं, इसलिए एसक्यूएल पीढ़ी पाइपलाइन समान है।

+0

उप-विषय संबंधी प्रश्नों के बारे में मेरा मुद्दा यह है कि मैं टीएसक्यूएल में चीजें कर सकता हूं कि मैं LINQ से Entities में नहीं कर सकता। कुछ उदाहरणों के लिए Google पर "पैरामीटर स्नीफिंग इकाइयों" के साथ एक भ्रमण करें (या, यदि आपके पास फिक्स है, तो कृपया मुझे बताएं और उन सभी की ज़रूरत वाले सभी की मदद करें!) सामान्य वर्कअराउंड जिसे मैंने विश्वसनीय पाया है टी-एसक्यूएल का उपयोग करना है स्नीफिंग त्रुटियों से बचने के लिए। – Godeke

+0

टी-एसक्यूएल, हाँ। अधिकांश भाग के लिए ESQL, नहीं,। सवाल LINQ बनाम * ई * एसक्यूएल था, नहीं * टी * -एसक्यूएल। –

+0

शब्दकोष pls – alchemical

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