मैंने अपने ऐप्स में से एक में NHibernate द्वितीय स्तर कैश का उपयोग करने के बारे में सोचना शुरू कर दिया। मैं शायद NHibernate.Caches.SysCache.SysCacheProvider
का उपयोग करूंगा जो एएसपीनेट कैश पर निर्भर करता है।NHibernate द्वितीय स्तर कैश से वस्तुओं को हटाने
कैश को सक्षम करना कोई समस्या नहीं थी, लेकिन मैं कैश ई को प्रबंधित करने के तरीके पर सोच रहा हूं। जी। प्रोग्रामिंग रूप से कैश आदि से कुछ इकाइयों को हटा रहा है
मेरा एप्लिकेशन किसी प्रकार का छवि डेटाबेस है। उपयोगकर्ता बैकएंड पर छवियों को अपलोड करता है और इसे /ImageDb/Show?userId=someUserId
तक पहुंचकर अग्रभाग में देख सकता है। डेटा अक्सर नहीं बदलता है। और यदि यह बदलता है, तो उपयोगकर्ता बैकएंड में "मेरे कैश साफ़ करें" नामक एक बटन से कोई फर्क नहीं पड़ता है, जो कैश से इस उपयोगकर्ता के लिए कैश किए गए ऑब्जेक्ट को हटा देता है।
मुझे एक समाधान ऑनलाइन मिला जो सभी कैश किए गए ऑब्जेक्ट्स को दूसरे स्तर के कैश से रोकता है। लेकिन यह मेरे लिए थोड़ा सा बल है ... मैं दर्जनों उपयोगकर्ताओं के लिए पूरे कैश को साफ़ नहीं करना चाहता क्योंकि सिर्फ एक उपयोगकर्ता ने अपने डेटा के लिए कैश साफ़ करने का प्रयास किया था।
तो मैं मूल रूप से क्या करना चाहता था: चयनित रूप से कैश किए गए डीबी ऑब्जेक्ट्स को C# में दूसरे स्तर के कैश से रोकता है।
क्या यह संभव है? मुझे लगता है कि यह कैश प्रदाता पर भी निर्भर करता है। यदि यह एएसपीनेट कैश प्रदाता के साथ काम करने योग्य नहीं है, तो मैं अन्य निर्मित/ओपन सोर्स सुझावों के लिए खुला हूं।
मुझे पता है कि यह शायद अब प्रासंगिक नहीं है लेकिन ध्यान दें कि आपकी यूआरआई योजना गलत है। यह उपयोगकर्ता/[आईडी]/छवि डीबी/शो –
@the_drow - जब तक ऐप को छवि डीबी कहा जाता है :) आप अभी भी अधिकतर सही हैं, बस छवि डीबी को/छवियों में बदलना है या कुछ –
@LukeSchafer: मैंने केवल ImageDb लिखा है क्योंकि ओपी इसका इस्तेमाल करता है। –