2009-07-18 23 views
29

मैं एंटिटी फ्रेमवर्क का उपयोग कर रहा हूं।एंटीटी फ्रेमवर्क कैश कैसे करें कुछ ऑब्जेक्ट्स

मेरे डेटाबेस में व्यक्तियों और उनके मूल के देश संग्रहीत हैं। जब मैं एक व्यक्ति वस्तु लोड कर रहा हूं, तो मुझे यह नहीं पता होगा कि प्रत्येक व्यक्ति किस स्थान पर है। क्या देशों की सूची कैश करने का कोई तरीका है ताकि अनावश्यक अनुरोध न हों।

+0

टक्कर। लुक-अप टेबल कैशिंग के संबंध में, 5+ वर्षों में ईएफ के साथ कुछ भी बदल गया है? विशेष रूप से, क्या ईएफ ने ऐसा करने के लिए एक तरीका एकीकृत किया है? – RLH

उत्तर

40

चूंकि लुहमान ने पहले ही कहा है कि मेरे साथी जैरेक के पास एंटीटी फ्रेमवर्क के लिए एक उत्कृष्ट नमूना कैशिंग प्रदाता है। जो वह here के बारे में बात करता है।

हालांकि कभी-कभी यह दृष्टिकोण अधिक है, और मुझे संदेह है कि कैशिंग देश एक अच्छा उदाहरण है जहां प्रयास इसके लायक नहीं है। कुछ प्रकार के एड-हाक कैशिंग को लागू करना बेहतर हो सकता है।

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

आपको जो चाहिए वह क्लोनिंग कैश है, यानी जब आप कैश से कुछ लेते हैं तो यह उन्हें क्लोन करता है।

मैं एक टिप है कि कैसे इस Tip 14 - How to cache Entity Framework Reference Data

आशा करने के लिए इस मदद करता है

एलेक्स जेम्स

इकाई की रूपरेखा टीम माइक्रोसॉफ्ट दिखाता है कि एक साथ रखा।

+0

जिस क्षण आपने अभी तक उस टिप को लिखा था, ईएफ 4.1 के साथ संदर्भ डेटा कैश करने का एक और सीधा तरीका है? – Romias

+3

अच्छी टिप एलेक्स, क्या ईएफ की नई रिलीज के साथ बेहतर दृष्टिकोण हैं? – NoChance

0

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

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