2010-11-11 10 views
6

मैं एक MVC आवेदन का निर्माण कर रहा हूँ और एक वर्ग के लिए एक कस्टम मॉडल बांधने की मशीन डिजाइनिंग कर रहा हूँ; अनिवार्य रूप से मॉडल के क्षेत्रों में से एक एक वस्तु है कि डेटाबेस में मौजूद है, लेकिन यह इस HTML में उपयुक्त वस्तुओं के साथ संबद्ध करने के लिए बहुत मुश्किल साबित हो रहा है। (चूंकि एक चयन सूची केवल मुझे एक int/string फ़ील्ड चुनने देगी, मैं वास्तव में एक 'ऑब्जेक्ट' को किसी चयन सूची के 'मान' के रूप में संग्रहीत नहीं कर सकता)।क्या रिपोजिटरी लुकअप करने के लिए मॉडल बाइंडर के लिए यह ठीक है?

मैं अपने मॉडल बाइंडर में मेरे डेटाबेस में वस्तु देखने के लिए ईद-चुने सूची में संग्रहीत का उपयोग करने का सोच रहा था - लेकिन मेरा एक सहयोगी ने मुझे बताया यह आम तौर पर एक बुरा विचार था। क्या यह सच है, और यदि हां, तो मेरे पास अन्य विकल्प क्या हैं?

+0

अपने सहयोगी का कहना है कि कारण है कि यह एक बुरा विचार किया जाएगा था? –

+0

उन्होंने कहा कि यह एमवीसी के 'चिंताओं को अलग करने' विचारधारा के 'नियम' तोड़ रहा था। – Ciel

+0

* वे *? वे कौन है* ? :) –

उत्तर

7

एक व्यक्तिपरक सवाल की तरह लगता है, लेकिन मुझे लगता है कि बांधने की मशीन में भंडार कॉल करने के लिए स्वीकार्य है। मेरा बैकअप उत्कृष्ट पुस्तक MVC in Action 2 है। उनके पास मॉडल बाइंडर्स पर एक छोटा सा अनुभाग है।

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

जो आपको लगता है कि मॉडल बाइंडर का पूरा बिंदु अंतर्निहित डोमेन मॉडल पर आपका विचार नक्शा है। उनका उदाहरण कोड बाइंडर में रिपोजिटरी कॉल भी दिखाता है।

+0

धन्यवाद। यह थोड़ा सा मदद करता है। मुझे पता था कि यह कैसे करना है, लेकिन यह जानकर कि दूसरों का अभ्यास कर रहे हैं, साथ ही यह औचित्य साबित करना बहुत आसान बनाता है। मेरे सहयोगी ने दावा किया कि यह 'खराब अभ्यास' था और कोड को बनाए रखने के लिए कठिन बना देगा (जिसे मैं समझ में नहीं आया ... क्योंकि ऐसा लगा कि इससे यह आसान हो जाएगा) – Ciel

+0

आपके कस्टम मॉडल बाइंडर में निर्भरता इंजेक्शन के बारे में क्या? मुझे नहीं लगता कि यह संभव है, है ना? – autonomatt

+0

आप इसके लिए mvc3 में निर्भरता के लिए कॉल कर सकते हैं – drogon

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