2010-11-02 14 views
8

मैं इकाई फ्रेमवर्क 4 का उपयोग कर रहा हूं और मैं आधार कक्षाओं में से किसी एक मॉडल में डेटाैकेंटेक्स्ट बना सकता हूं। लेकिन मैं इसे प्रोफाइलिंग में था और हर बार जब मैं क्वेरी करने का प्रयास करता हूं तो संदर्भ बनाया जा रहा है, इसलिए मैंने इसे स्थिर बनाने के बारे में सोचा ताकि यह केवल एक बार बनाया गया हो और हमेशा पुन: उपयोग किया जा सके।क्या डेटा संदर्भ स्थिर होना चाहिए?

क्या आपको लगता है कि यह करने का सबसे अच्छा तरीका है और डेटा/ऑब्जेक्ट संदर्भ हमेशा स्थिर होना चाहिए? क्या यह स्थिर बनाने के लिए कोई नुकसान है? क्या डेटा संदर्भ स्थिर या गैर स्थैतिक होना चाहिए? किसी भी विचार या सुझाव का स्वागत है।

+0

डेटाकॉन्टेक्स्ट और ऑब्जेक्ट कॉन्टेक्स्ट जीवनकाल के संबंध में SO पर * LOTS * प्रश्न हैं। http://stackoverflow.com/search?q=Datacontext+lifetime –

+0

[वेब अनुप्रयोग में LinqToSql स्थिर डेटा कॉन्टेक्स्ट] के संभावित डुप्लिकेट [http://stackoverflow.com/questions/940912/linqtosql-static-datacontext-in-a -वेब एप्लीकेशन) –

उत्तर

9

नहीं। वे हमेशा स्थिर नहीं होना चाहिए।

आप वास्तव में गैर स्थैतिक समकक्ष (जैसे एकाधिक थ्रेड से समान संदर्भ तक पहुंचने वाले अलग-अलग सत्रों के एकाधिक उपयोगकर्ताओं) की बजाय स्टेटिक डेटा संदर्भ के साथ कई और मुद्दों में भाग ले सकते हैं।

मैं विस्तृत विवरण में जाने के लिए के बाद से वहाँ कुछ बहुत अच्छा ब्लॉग पोस्ट बाहर वहाँ विवरण को कवर कर रहे हैं नहीं जा रहा हूँ:

Linq to SQL DataContext Lifetime Management - Rick Strahl's Web Log (प्रासंगिक प्रतीत नहीं हो सकता है, लेकिन अभी भी है)

Making Entity Framework (v1) work, Part 1: DataContext Lifetime Management (यदि आप रिक के समाधान को पसंद नहीं करते हैं तो संभावित विकल्प के लिए)

5

क्या डेटा संदर्भ हमेशा स्थिर होना चाहिए?

नहीं, उन्हें (लगभग *) स्थिर नहीं होना चाहिए। DataContext बनाने के लिए सस्ते हैं क्योंकि वे काम की इकाई के रूप में उपयोग करने के लिए हैं। इस प्रकार आपके पास एक "बातचीत" प्रति DataContext होना चाहिए (जो भी आपके संदर्भ के लिए होता है)।

*: सही उत्तर शायद यह है कि उन्हें कभी स्थिर नहीं होना चाहिए, लेकिन मैं हमेशा प्रोग्रामिंग सलाह पर संदेह करता हूं जो हमेशा या कभी नहीं होता है। इस प्रकार, यह किसी भी चीज़ से अधिक वीनी wiggle है।

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