2009-03-04 15 views
7

प्राप्त करें मैं एक सॉफ्ट-डिलीटेबल रिपोजिटरी को लागू करने की कोशिश कर रहा हूं। आमतौर पर इसे हटाएं ईवेंट श्रोता के साथ आसानी से किया जा सकता है। हटाए गए इकाइयों को फ़िल्टर करने के लिए, मैं जोड़ सकता हूं जहां मेरी कक्षा मैपिंग में विशेषता है। हालांकि, मुझे इस इकाई के लिए भंडार में दो और तरीकों को लागू करने की भी आवश्यकता है: और पुनर्स्थापित करें को पुन: स्थापित करें। पुनर्स्थापित करें "undelete" इकाइयों और Purge उन्हें कड़ी मेहनत करेंगे। इसका मतलब है कि मैं कहां उपयोग नहीं कर सकता (क्योंकि यह किसी भी पहुंच के लिए मुलायम हटाए गए इकाइयों को अवरुद्ध करता है)NHibernate फ़िल्टर सत्र के साथ काम नहीं करते हैं।

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

इस समस्या को हल करने के तरीके के बारे में कोई भी विचार?

धन्यवाद

+0

क्या आपको कभी इसके लिए समाधान मिला है? – kmoo01

+0

नहीं। फ़िल्टर प्राप्त करने पर काम नहीं करते हैं। वे केवल मानदंडों को प्रभावित करते हैं। मुझे बेस रिपोजिटरी पर केवल एक अलग दृष्टिकोण लागू करना था और फ़िल्टर के अन्य उपयोग मामलों को संभालने दें। – Khash

उत्तर

2

बोली:

तक design.Filters प्राप्त करें या लोड क्योंकि वे मतलब साथ काम नहीं करते: मैं लोड इस आईडी के साथ इकाई चाहते हैं।

गतिशील फिल्टर HQL/मानदंड और संग्रह (जहां एक संग्रह के लिए सक्षम) केवल जब आप स्पष्ट मिलती है या अधिक सामान्य, का उपयोग के साथ काम जब एक प्रश्न के QuerySpace के साथ एक फिल्टर मैच के QuerySpace।

0

क्या इस के लिए IInterceptor काम करेगा?

एम्प्टीइंटरसेप्टर को देखते हुए मुझे लगता है कि इसमें एक ऑनलोड है जो मुझे लगता है कि आप ऑब्जेक्ट लोडिंग को रोकने के लिए उपयोग कर सकते हैं। फैबियो Maulo से

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