में मॉडलबाइंडिंग डेटाबेस इकाइयां मुझे यह सोचने में परेशानी हो रही है कि नियंत्रक एक्शन में डेटाबेस ऑब्जेक्ट को फिर से बनाने का सबसे अच्छा तरीका क्या है।एएसपीएनईटी एमवीसी
मैं मॉडलबिंडर्स का उपयोग करना चाहता हूं, इसलिए मेरी क्रिया में मुझे पहचानकर्ता पैरामीटर के आधार पर डेटाबेस से ऑब्जेक्ट प्राप्त करने के लिए कोड दोहराने के बजाय पैरामीटर के माध्यम से ऑब्जेक्ट तक पहुंच है। तो मैं एक मॉडलबिंडर रखने की सोच रहा था जो मूल ऑब्जेक्ट प्राप्त करने के लिए डेटाकैस परत पर कॉल करता है (या डेटाबेस में मौजूद नहीं होने पर एक नया बनाता है), फिर डेटाबेस ऑब्जेक्ट को किसी भी गुण को अद्यतन करने के लिए बाध्य करता है। हालांकि मैंने पढ़ा है कि मॉडलबिंडर्स को डेटाबेस क्वेरी नहीं करना चाहिए (इस article की पहली टिप्पणी)।
यदि मॉडलबिंडर को डेटाबेस क्वेरी नहीं करना चाहिए (तो केवल डिफ़ॉल्ट मॉडेल बाइंडर का उपयोग करना चाहिए) तो डेटाबेस ऑब्जेक्ट्स के बारे में क्या है जिसमें अन्य डीबी ऑब्जेक्ट्स हैं? ये कभी सौंपा नहीं जाएगा।
उपयोगकर्ता ने इसे संपादित करने के बाद किसी ऑब्जेक्ट को सहेजना (1 या 2 गुण दृश्य में संपादन योग्य हैं) मॉडलबिंड ऑब्जेक्ट में डेटा गायब होगा, इसलिए इसे सहेजने के परिणामस्वरूप डेटाबेस में डेटा अमान्य मानों के साथ अधिलेखित किया जाएगा , या नॉन-नल बाधाओं में असफल रहा।
तो, दृश्य से पोस्ट किए गए फॉर्म डेटा के साथ डेटाबेस से नियंत्रक कार्रवाई में ऑब्जेक्ट प्राप्त करने का सबसे अच्छा तरीका क्या है?
नोट एनएचबीर्नेट का उपयोग कर रहा हूं।
मैं (आप के रूप में ठीक उसी स्थिति में हूँ भी एनएच का उपयोग)। मैंने कोड डुप्लिकेशन से बचने के लिए एक मॉडल बाइंडर लागू किया है। बाइंडर से डीबी तक पहुंचने के बारे में आपका निष्कर्ष क्या है? –
अंत में मैंने बाइंडर्स में डेटाबेस पहुंच के खिलाफ पक्षपात किया। मेरे दृश्य मॉडल अब मेरे डोमेन मॉडल से अलग हैं। आपके डोमेन मॉडल पर सीधे बाध्यकारी समस्याएं हैं (निबर्ननेट संभवतः अमान्य डेटा के अनुरोध के अंत में बाउंड ऑब्जेक्ट को फ्लश करेगा, और जब तक कि आप कोई नया सत्र नहीं बनाते, तब तक ऑब्जेक्ट को पुनः प्राप्त कर लेते हैं, आप इसका उपयोग कर समाप्त करते हैं पूरे अनुरोध में अवैध बाध्य वस्तु)। –
मुझे बताने के लिए धन्यवाद। –