एक परीक्षण में जहां मैं एक वस्तु को जारी रखना चाहता हूं और फिर साबित करता हूं कि इसे डीबी (और सत्र नहीं) से लाकर इसे जारी रखा गया था, मुझे निम्नलिखित के बीच कोई अंतर नहीं दिखता:NHibernate सत्र। फ्लश और Evict बनाम साफ़
// save it
session.Clear()
// fetch it
या
// save it
session.Flush()
session.Evict(_instance)
// fetch it
आलसी प्रोग्रामर मुझ में दो से अधिक एक पंक्ति की ओर leans। क्या दो कारणों के पक्ष में मुझे कुछ कारण याद आ रहा है?
मैं * पहचान का उपयोग कर रहा हूं - यह फ्लश और बेदखल करने का एक शानदार कारण है! चीयर्स – Berryl
बीटीडब्ल्यू, सत्र नहीं होगा। फ्लश और सत्र। फ्लश और इविक्ट के समान प्रभाव प्राप्त करें? मेरा मानना है कि यह तब भी बेहतर है क्योंकि जब तक परिभाषित नहीं किया जाता है तब तक Evict कैस्केड नहीं होगा। – Rita
@ रीटा। हाँ मुझे लगता है कि आप इसके बारे में सही हैं। डिएगो ने जो कहा, उसके बारे में एहसास करने वाली चाबियों में से एक यह है कि स्पष्ट रद्द * लंबित * बचाता है। मैं आमतौर पर इन दिनों क्या करता हूं सब कुछ एक ट्रान्सक्शन के अंदर लपेटता है; इसलिए सहेजें एक अलग टीएक्स के अंदर है और टीएक्स के माध्यम से प्रतिबद्ध है। सत्र से पहले कॉल करें। क्लीयर() और इसलिए लंबित नहीं है। HTH – Berryl