यदि आपका आवेदन किसी व्यवसायिक एप्लिकेशन का समर्थन कर रहा है, तो क्वेरी जल्द ही जटिल हो जाएगी। इस तरह के परिदृश्य में, संग्रहित प्रक्रियाएं बहुत समय बचाती हैं और बनाए रखने के लिए बहुत आसान होती हैं और वे ADO.NET के साथ बेहतर काम करती हैं। लगभग सभी परिदृश्यों में, मैं संग्रहित प्रक्रियाओं और ADO.NET का उपयोग करने का सुझाव दूंगा। जैसा कि आप कर सकते हैं संग्रहीत प्रक्रियाओं के लिए जितना अधिक व्यवसाय नियम और तर्क ले सकते हैं ... इस तरह बनाए रखने के लिए बहुत आसान है।
डेटा पुनर्प्राप्त करने और पढ़ने के लिए डेटासेट (डेटाटेबल्स) का उपयोग करें। डेटाबेस में सहेजे जाने वाले किसी भी डेटा को डेटाबेस में सीधे छेड़छाड़ की जानी चाहिए ... डेटासेट में ऐसा करने के लिए कोई बिंदु नहीं है और फिर उसे सहेजना है। बहु-उपयोगकर्ता वातावरण में जैसे ही उपयोगकर्ता ने "सेव" पर क्लिक किया है, डेटाबेस में परिवर्तनों को सहेजना लगभग हमेशा बेहतर होता है।
आप व्यापार-तर्क प्रक्रियाओं के लिए आवेदन के भीतर व्यावसायिक वस्तुओं का उपयोग कर सकते हैं (चाहिए)।
हमें जहाँ आप एक संपर्क बचत कर रहे हैं (नाम, फोन, ई-मेल, पता आदि) और फिर आज जोड़ा संपर्कों की सूची को पुन: प्राप्त का एक सरल उदाहरण लेते हैं मैं आप यह कर के रूप में इस सुझाव दें ...:
1) संपर्क जोड़ना - क्लाइंट (वेब या अन्यथा) डेटा एकत्र करता है -> डेटा एक संपर्क व्यवसाय ऑब्जेक्ट में सहेजा जाता है -> संपर्क ऑब्जेक्ट को सत्यापित करें -> संपर्क ऑब्जेक्ट को सहेजने के लिए कॉल रिपोजिटरी परत (एक रिपोजिटरी परत जोड़ना उपयोगी है लेकिन क्लाइंट से डेटा लेयर सार रखने के लिए जरूरी नहीं है) -> रिपोजिटरी संपर्क ऑब्जेक्ट को सहेजने के लिए डेटा लेयर को कॉल करता है (यहां कमांड ऑब्जेक्ट का उपयोग करके एक साधारण एडीओ.नेट कॉल, संग्रहीत प्रक्रिया को सहेजने के लिए कॉल किया जा सकता है डेटाबेस में संपर्क)। इस उपयोग के मामले में कोई डेटासेट इस्तेमाल नहीं किया गया था।
2) संपर्कों की सूची पुनर्प्राप्त करना - क्लाइंट संपर्कों की सूची प्राप्त करने के लिए भंडार परत को कॉल करता है -> भंडार परत डेटा को पुनर्प्राप्त करने के लिए डेटा परत को कॉल करती है -> यहां डेटा की सूची डेटासेट के रूप में पुनर्प्राप्त की जाती है (डेटाटेबल) -> डेटा को वापस करने के दौरान डेटा को वापस करने योग्य डेटा को वापस लौटाएं और डेटा को प्रतिपादित करते समय क्लाइंट डेटा को डेटाटेबल से सीधे पढ़ने दें। डेटासेट के रूप में भी एक ही संपर्क पुनर्प्राप्त किया जा सकता है।
पीएस: ओआरएम लगभग हमेशा एक ओवरकिल है। यह लगभग हमेशा उपयोग किया जाता है क्योंकि कुछ डेवलपर्स ऑब्जेक्ट-ओरिएंटेड सब कुछ रखना पसंद करते हैं ... इसलिए एक अतिरिक्त परत जोड़ दी जाती है, भले ही यह कुछ भी उपयोगी न हो (IMHO)।
स्रोत
2013-01-18 23:46:43
LINQ से SQL, या NHibernate, या Micro ORMs, या केवल सादे पुराने ADO.net के बारे में क्या है? आपका प्रश्न बहुत बड़ा और काफी अप्रत्याशित है।डेटा एक्सेस लेयर निश्चित रूप से किसी भी डेटा संचालित एप्लिकेशन का एक प्रमुख हिस्सा है, लेकिन यह एक ही SO उत्तर में कवर करने के लिए बहुत बड़ा विषय है। मैं कई किताबों में निवेश का सुझाव देना चाहता हूं। –
वर्तमान में मैं LINQ पर पढ़ रहा हूं, लेकिन फिर मेरे डेटाबेस से पूछने के लिए LINQ का उपयोग करने के लिए, मुझे अपने डेटाबेस तक पहुंच की आवश्यकता है, जिसके लिए मुझे यह पता लगाने की आवश्यकता है कि क्या मैं डेटासेट या ईडीएम का उपयोग कर रहा हूं। मैं सराहना करता हूं कि यह एक ही जवाब में कवर करने के लिए एक बहुत बड़ा विषय है, लेकिन यह सोच रहा था कि कोई मुझे कुछ पॉइंटर्स दे सकता है जिसे मैं आगे बढ़ा सकता हूं। आपके त्वरित उत्तर के लिए धन्यवाद। – Vim
केवल एक चीज जो मैं जोड़ूंगा वह यह है कि आप वास्तव में डेटा एक्सेस लेयर पर निर्णय नहीं ले सकते हैं कि यह आपके बाकी आर्किटेक्चर में कैसे फिट बैठता है। मैंने अधिकांश विकल्पों का प्रयास किया है और अंत में डेटा एक्सेस लेयर के लिए मैं एडीओ.net के माध्यम से सादे एसक्यूएल का उपयोग करता हूं (स्वीकार्य रूप से सभी कोड जनरेशन सिस्टम के माध्यम से उत्पन्न)। यह तेज़, साफ है और आज के फ़ैड तकनीक में आपका एप्लिकेशन नहीं लगाता है। –