2011-03-24 17 views
12

यह अपने asp.net MVC के में एक मॉडल बनाने के लिए सबसे अच्छा अभ्यास होगा। इन मॉडलों का उपयोग अपने विचारों के साथ करें और ईएफ-मॉडल में मेरे मॉडल को "अनुकूलित" करने के लिए सेवा परत का उपयोग करके करें।asp.net MVC के मॉडल बनाम इकाई की रूपरेखा मॉडल

या आप एक और तरीका इस्तेमाल किया है। इस दृष्टिकोण के साथ समस्या यह है कि ज्यादातर बार मेरा (आत्मनिर्भर) मॉडल ईएफ-मॉडल (सूखा नहीं) की एक प्रति है

तो क्या कोई मुझे बता सकता है कि आपके दृश्य के साथ कौन से मॉडल का उपयोग करना है क्योंकि यह बहुत भ्रमित हो रहा है । मॉडल/viewmodel/Entityframeworkmodel ....

समाधान:

जवाब सब लगता है कि मैं इस समय कर रहा हूँ कुछ बातें refactor करने के लिए धन्यवाद!

उत्तर

22

सही दृष्टिकोण एक हठ (इकाई) के लिए ViewModel के लिए अलग अलग वर्ग और विभिन्न उपयोग कर रहा है। सामान्य कारण यह है कि आपको अक्सर एक दृश्य में कुछ अतिरिक्त डेटा भेजने की आवश्यकता होती है (उदाहरण के लिए ड्रॉप डाउन भरने के लिए डेटा, कुछ फ़ील्ड अक्षम करने के लिए डेटा इत्यादि), अलग-अलग सत्यापन का उपयोग करें या केवल एक इकाई का सबसेट दिखाएं।

मैं शुद्ध नहीं हूं। अगर मैं देखता हूं कि मेरा व्यू मॉडल बिल्कुल इकाई जैसा ही है, तो मैं सीधे इकाई का उपयोग करता हूं लेकिन दृश्य में कोई अतिरिक्त जानकारी की आवश्यकता होने पर मैं कोड को दोबारा प्रतिक्रिया दूंगा। अक्सर मैं संस्थाओं के साथ शुरू करता हूं और वृद्धिशील विकास के कारण मैं दृश्य मॉडल के साथ समाप्त होता हूं।

+0

इस पैटर्न का पालन करते समय, आप किस नामकरण सम्मेलन की सिफारिश करेंगे? एमवीसी ट्यूटोरियल आपको बस "मॉडल" फ़ोल्डर का उपयोग करने के लिए कहता है, इसमें अपनी इकाई फ्रेमवर्क मॉडल चिपकाएं और मान लें कि वे आपके दृश्य मॉडल के समान होंगे (जैसा कि हम जानते हैं, अक्सर मामला नहीं है)। – Saturnix

3

आमतौर पर मैं अपने देखें मॉडल मॉडल फ़ोल्डर में, और मेरे डोमेन मॉडल ORM परत में है।

मॉडल (नाम से) देखें उन वस्तुओं आप केवल देखने प्रक्रिया में सहायता करने की जरूरत है के लिए सामान्य मॉडल हैं, वे कोई हठ जो भी है और वे कुछ तर्क हो सकती है।

समस्या को अपने डोमेन मॉडल अपने दृश्य मॉडल से मेल खाते हैं का सामना करना है, तो आप मॉडल को फिर से डिजाइन या सिर्फ एक मैन-इन-द-मिडल बिना डोमेन मॉडल का उपयोग करना पड़ सकता है। मेरे लिए

1

जैसा कि मैंने मानक MVC संरचना में मॉडल फ़ोल्डर को हटाने और ViewModels फ़ोल्डर है जहाँ मैं सभी दृश्य मॉडल की दुकान जोड़ने पसंद करते हैं। जैसा कि लाडिस्लाव ने पहले पुनरावृत्तियों में उल्लेख किया था, वे व्यूमोडल्स आपके डोमेन मॉडल से इकाई की एक सटीक प्रति हो सकती हैं लेकिन वृद्धिशील वे एक इच्छा को बढ़ाएंगे।

+0

मॉडलों के बजाय फ़ोल्डर दृश्य मॉडल को कैल करने का महत्व क्या है? – DavidB

+0

कोई नहीं। लेकिन इस तरह आप देखते हैं कि 'व्यू' मॉडल ऑब्जेक्ट्स वहां से सहेजे गए हैं और 'व्यवसाय' मॉडल ऑब्जेक्ट्स नहीं हैं। यह सब व्यक्तिगत वरीयताओं से निर्भर करता है :) –

+0

मैं देखता हूं, अब समझ में आता है। उत्तर के लिए धन्यवाद। – DavidB

1

खैर, यह मतलब नहीं है। मैं इसके साथ संघर्ष करता था, मुझे लगता है कि आपको मॉडल होना चाहिए जो तालिका इकाई नहीं है, मैंने इस डोमेन मॉडल को बुलाया। इसका कारण यह है कि यदि आप linq2sql का उपयोग कर रहे हैं, तो आपको ब्रिजिंग/लिंक टेबल (जो असली इकाई नहीं है), और जटिल गणना से निपटना होगा, ताकि आप इसे अपनी टेबल इकाई में नहीं बना सकें, दाएं ? तो मेरा दृष्टिकोण है ViewModel < -> मॉडल < -> इकाई

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