2013-05-01 9 views
13

के साथ डब्ल्यूपीएफ में यूनिटऑफवर्क जीवनकाल मेरा मूल सेटअप इस तरह बहुत है; http://visualstudiomagazine.com/articles/2011/10/01/wpf-and-inversion-of-control.aspxआईओसी कंटेनर

WPF में एक एमवीवीएम सेटअप। मैं ViewModel में एक UnitOfWork और एक RepositoryFactory इंजेक्शन कर रहा हूँ। इसने अब तक लिखे गए संवादों के लिए बहुत अच्छा काम किया है ... हालांकि हमारे आवेदन का बड़ा हिस्सा डॉक्यूबल विंडोज़ (विज़ुअल स्टूडियो यूआई) के अंदर है। ये तब तक खुले हैं जब तक एप्लिकेशन है।

तो मेरा विचार है कि इकाई कार्य को एक विधि कॉल के जीवनकाल (उदाहरण के लिए बटन) क्लिक करें।

लेकिन मुझे ऐसा करने का एक अच्छा तरीका नहीं पता है जो कैसल विंडसर का उपयोग आईओसी कंटेनर के रूप में और/या DRY का पालन नहीं करने के कुछ लाभों को तोड़ता नहीं है।

यह बहुत अच्छा लगता है ... http://www.codeproject.com/Articles/543810/Dependency-Injection-and-Unit-Of-Work-using-Castle लेकिन मुझे सेमी-सिंगलटन में सत्र को लपेटने की चिंता है और चिंता करें कि मैं यूनिटऑफवर्क पर सीधे पहुंच को हटाकर पैर में खुद को शूटिंग कर रहा हूं।

किसी के पास इसका कोई अच्छा समाधान नहीं है? उपर्युक्त कोडप्रोजेक्ट अच्छा है और यदि इसकी त्रुटियां नहीं हैं?

+0

हैलो फेनिक्स, मैं काम के स्पष्ट उपयोग का उपयोग नहीं करता हूं, बल्कि आईएसशन (एनएचबीरनेट) या डीबीकॉन्टेक्स्ट (ईएफ) का उपयोग सीधे करता हूं। इनके लिए जीवनकाल दृश्यमानों से जुड़ा हुआ है, भले ही उनके पास आवेदन जीवनकाल हो। जब तक ये विचार डेटाबेस से अधिक से अधिक डेटा जमा नहीं करते हैं, मुझे कोई समस्या नहीं दिखाई देती है। ध्यान रखें कि एक DbContext/ISession डेटाबेस कनेक्शन के समान नहीं है। – Marwijn

+0

बहुत ज्यादा बात किए बिना, यह [प्रश्न] [1] देखें। [1]: http://stackoverflow.com/questions/3653009/entity-framework-and-connection-pooling –

+0

@Sniffer कि '[कड़ी शीर्षक] (यूआरएल)';) –

उत्तर

3

बस यूनिट ऑफ वर्क फैक्टरी (उदाहरण के लिए, IUnitOfWorkFactory) इंटरफ़ेस का परिचय दें और जहां उचित हो (इसका इंजेक्ट करें) आदि का उपयोग करें।

इसके अलावा, इंटरफ़ेस IDisposable इंटरफ़ेस से विरासत में प्राप्त करने पर विचार करें।

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