6

से वर्तमान NHibernate सत्र ऑब्जेक्ट को पुनर्प्राप्त कैसे करें मेरे पास एक खुला कैसल ActiveRecord सत्रस्कोप है। मुझे सत्रस्कोप में लिपटे निबर्ननेट सत्र का उपयोग करने की आवश्यकता है।कैसल ActiveRecord सत्रस्कोप

मैं सत्रस्कोप से वर्तमान एनएचबीर्नेट सत्र ऑब्जेक्ट को कैसे पुनर्प्राप्त कर सकता हूं?

उत्तर के लिए आपको बहुत बहुत धन्यवाद।

[अद्यतन] मैं इस कोड

ISession session = SessionScope.Current.GetSession(); 

है, लेकिन मैं नहीं जानता कि क्या GetSession पैरामीटर

उत्तर

0

मुझे लगता है कि ActiveRecord SessionScope विभिन्न प्रकार के लिए कई कारखानों संभाल कर सकते हैं करने के लिए गुजरती हैं, लेकिन यदि आप इसका उपयोग नहीं कर रहे हैं तो मुझे लगता है कि आप किसी भी प्रकार की कक्षा में उत्तीर्ण होने के लिए अच्छा होगा:

ISession session = SessionScope.Current.GetSession(typeof (YourClass)); 
+0

धन्यवाद @ jishi लेकिन मुझे यह त्रुटि है: कुंजी संग्रह में नहीं है। – manuellt

+0

क्या आप विंडसर के साथ ActiveRecordFacility का उपयोग कर रहे हैं? – jishi

+0

धन्यवाद @ jishi, मैं विंडसर के साथ ActiveRecordFacility का उपयोग नहीं कर रहा हूं, लेकिन मैंने एक समाधान की कोशिश की, मैंने इसका परीक्षण किया और ठीक हो गया। फिर से धन्यवाद। – manuellt

9

मैं आर इसे इस कोड के साथ शामिल किया गया:

 ISessionFactoryHolder holder = ActiveRecordMediator.GetSessionFactoryHolder(); 
     ISessionScope activeScope = holder.ThreadScopeInfo.GetRegisteredScope(); 
     ISession session = null; 
     var key = holder.GetSessionFactory(typeof(ActiveRecordBase)); 
     if (activeScope == null) 
     { 
      session = holder.CreateSession(typeof(ActiveRecordBase)); 
     } 
     else 
     { 
      if (activeScope.IsKeyKnown(key)) 
       session = activeScope.GetSession(key); 
      else 
       session = holder.GetSessionFactory(typeof(ActiveRecordBase)).OpenSession(); 
     }