वर्तमान में मैं जो एप्लिकेशन बना रहा हूं वह डेटाबेस ऑब्जेक्ट्स का प्रतिनिधित्व करने के लिए संग्रहीत प्रक्रियाओं और हाथ से तैयार किए गए क्लास मॉडल का उपयोग कर रहा है। कुछ लोगों ने एंटिटी फ्रेमवर्क का उपयोग करने का सुझाव दिया है और मैं उस पर स्विच करने पर विचार कर रहा हूं क्योंकि मैं उस परियोजना में नहीं हूं। मेरी समस्या यह है, मुझे लगता है कि EF के लिए बहस करने वाले लोग मुझे केवल चीजों का अच्छा पक्ष बता रहे हैं, बुरे पक्ष को नहीं :)
मेरी मुख्य चिंताएं हैं:
- हम DataAnnotations का उपयोग करके क्लाइंट-साइड सत्यापन चाहते हैं, और ऐसा लगता है कि मुझे वैसे भी क्लाइंट-साइड मॉडल बनाने हैं, इसलिए मुझे यकीन नहीं है कि EF उस कोडिंग समय को बचाएगा
- हम नेटवर्क पर जाने के दौरान कक्षाओं को यथासंभव छोटा रखना चाहते हैं, और मैंने पढ़ा है कि EF का उपयोग करने में अक्सर अतिरिक्त डेटा शामिल होता है, जिसकी आवश्यकता नहीं होती है
- हमारे पास एक जटिल डेटाबेस परत है जो कई डेटाबेस को पार करती है, और मुझे यकीन नहीं है कि ईएफ इसे संभाल सकता है। हमारे पास एप्लिकेशन के विभिन्न उदाहरणों के लिए उपयोगकर्ता, स्टेटसकोड, प्रकार, आदि और हमारे मुख्य डेटाबेस के कई उदाहरणों के साथ एक सामान्य डेटाबेस है। डेटाबेस के सभी उदाहरणों में क्वेरीज़ का चयन कर सकते हैं और क्वेरी करेंगे, हालांकि उपयोगकर्ता केवल उन ऑब्जेक्ट्स को संशोधित कर सकते हैं जो डेटाबेस में वर्तमान में काम कर रहे हैं। वे एप्लिकेशन को फिर से लोड किए बिना डेटाबेस को स्विच कर सकते हैं।
- ऑब्जेक्ट मोड बहुत जटिल हैं और इसमें अक्सर काफी कुछ जोड़ शामिल होते हैं
EF के लिए तर्क हैं:
- संगामिति। मुझे यह देखने के लिए चेक में कोड नहीं करना होगा कि क्या प्रत्येक सेव से पहले रिकॉर्ड अपडेट किया गया था
- कोड जनरेशन। EF मेरे लिए आंशिक वर्ग मॉडल और POCO उत्पन्न कर सकता है, हालाँकि मैं सकारात्मक नहीं हूँ यह वास्तव में मुझे उस समय को बचाएगा क्योंकि मुझे लगता है कि हमें अभी भी सत्यापन और कुछ कस्टम पार्सिंग विधियों के लिए क्लाइंट-साइड मॉडल बनाने की आवश्यकता होगी।
- विकास की गति चूंकि हमें हर डेटाबेस ऑब्जेक्ट के लिए CRUD संग्रहीत कार्यविधियाँ बनाने की आवश्यकता नहीं होगी
हमारी वर्तमान वास्तुकला में WPF सेवा शामिल है, जो डेटाबेस कॉल को मानकीकृत संग्रहीत कार्यविधियों, POCO ऑब्जेक्ट्स के माध्यम से संभालती है, जो WCF सेवा और WPF क्लाइंट से / के पास जाते हैं, और WPF डेस्कटॉप क्लाइंट स्वयं जो POCO को वर्ग मॉडल में रूपांतर के उद्देश्य से रूपांतरित करता है और अनिवार्य तथ्य।
तो मेरा सवाल यह है कि क्या इसके लिए ईएफ सही है? क्या ईएफ के बारे में कोई ऐसी गड़बड़ी है जिससे मैं अनजान हूं?