मैं एक WPF अनुप्रयोग के विकास के बीच में हूं जो एंटीटी फ्रेमवर्क (.NET 3.5) का उपयोग कर रहा है। यह कई जगहों पर इकाइयों तक पहुंचता है। मैं संस्थाओं के संबंध में पूरे आवेदन में निरंतरता के बारे में चिंतित हूं। क्या मुझे अपने अलग-अलग विचारों में अलग-अलग संदर्भों को बढ़ावा देना चाहिए, या क्या मुझे (और ऐसा करने का एक अच्छा तरीका है) उदाहरण के लिए एक ही संदर्भ जिसे वैश्विक रूप से एक्सेस किया जा सकता है?WPF अनुप्रयोग में वैश्विक इकाई फ्रेमवर्क संदर्भ
उदाहरण के लिए, मेरे इकाई मॉडल में तीन अनुभाग हैं, शिपमेंट्स (बाल पैकेज और आगे की बाल सामग्री के साथ), कंपनियां/संपर्क (बाल पते और टेलीफोन के साथ), और डिस्क चश्मा। शिपमेंट्स और एडिटशिपमेंट व्यू डिस्कस्पेक्स तक पहुंचते हैं, और विकल्प व्यू डिस्कस्पेक्स (बनाएं, संपादित करें, हटाएं) प्रबंधित करता है। यदि मैं डिस्कस्पेक संपादित करता हूं, तो मेरे पास अलग-अलग संदर्भों को पुनर्प्राप्त करने के लिए शिपमेंट व्यू में कुछ होना चाहिए यदि मेरे पास अलग संदर्भ हैं?
यदि यह एक समग्र संदर्भ सुरक्षित है जिसके द्वारा शेष ऐप अपनी वस्तुओं को पुनर्प्राप्त करता है, तो मुझे लगता है कि यह जाने का तरीका है। यदि हां, तो उस उदाहरण को कहां रखा जाएगा? मैं वीबी.नेट का उपयोग कर रहा हूं, लेकिन मैं सी # बहुत अच्छा अनुवाद कर सकता हूं। किसी भी सहायता की सराहना की जाएगी।
मैं उन अनुप्रयोगों में से एक नहीं चाहता हूं जहां उपयोगकर्ता को नए डेटा प्राप्त करने के लिए ऐप के विभिन्न हिस्सों में एक दर्जन बार पुनः लोड करना होगा।
अद्यतन:
- सभी संदर्भों उनमें से निपटाने के लिए के बाद वे अब जरूरत हैं ब्लाकों का प्रयोग में बनाए जाते हैं:
ठीक तो मैं इस प्रकार मेरे ऐप बदल दिया है।
- लोड होने पर, सभी इकाइयों को निपटाने से पहले संदर्भ से अलग कर दिया जाता है।
- MainViewModel (ContextUpdated) में एक नई प्रॉपर्टी एक ऐसी घटना को बढ़ाती है जो अन्य सभी ViewModels सदस्यता लेती है जो ViewModels RefreshEntities विधि को चलाती है।
- इसे लागू करने के बाद, मुझे त्रुटियां मिलनी शुरू हुईं कि एक इकाई को एक समय में एक चेंजट्रैकर द्वारा संदर्भित किया जा सकता है। चूंकि मैं यह नहीं समझ पाया कि कौन सा संदर्भ अभी भी इकाई का संदर्भ दे रहा था (क्या कोई संदर्भ सही नहीं होना चाहिए?) मैंने ऑब्जेक्ट को आईईएनटीटी विथ चेंजटेकर के रूप में डाला, और सेट चेंजटेकर को कुछ भी नहीं (शून्य) सेट किया।
यह वर्तमान समस्या के लिए जाने की है: जब मैं इकाई पर changeTracker नल, और फिर एक संदर्भ के लिए देते हैं, यह खो देता है यह राज्य बदल गया है और डेटाबेस से अपडेट कर दिया नहीं है। हालांकि अगर मैं परिवर्तन ट्रैकर को नहीं हटाता, तो मैं संलग्न नहीं कर सकता। मेरे पास अपना खुद का परिवर्तन ट्रैकिंग कोड है, इसलिए यह कोई समस्या नहीं है।
मेरा नया सवाल यह है कि, आपको यह कैसे करना है। एक अच्छा उदाहरण एंटिटी क्वेरी और एंट्री सेविंग कोड से बचने का एक लंबा सफर तय होगा, क्योंकि मैं जो काम करता हूं उसे पाने के लिए मैं अपने सिर को मार रहा हूं, काम करने के लिए एक साधारण लेनदेन था।
यदि आप डाउनवोट करते हैं, तो मुझे स्पष्टीकरण पसंद आएगा। कम से कम यह मुझे बताएगा कि सड़क के आगे क्या नहीं करना है। – CodeWarrior