2011-05-24 9 views
22

एनएचबर्ननेट में StatelessSession और Session के बीच क्या अंतर है?एनएचबेर्नेट में स्टेटलेस सत्र और सत्र के बीच क्या अंतर है?

+0

के संभावित डुप्लिकेट [sessionfactory.openSession() और sessionfactory.openStatelessSession() के बीच अंतर?] (Http://stackoverflow.com/questions/5496995/difference-between-sessionfactory-opensession-and-sessionfactory-openstatelesss) –

+0

उत्तर [यहां] (http://stackoverflow.com/questions/2679636/nhibernate-isession-vs-istatelesssession) – Reniuz

उत्तर

18

स्टेटलेस सत्र पुनर्प्राप्त इकाइयों को ट्रैक नहीं कर रहा है। कोड निम्नलिखित नियमित ISession के लिए उदाहरण के लिए:

var session = sessionFactory.OpenSession() 
using(var transaction = session.BeginTransaction()){ 
    var user = session.Get<User>(1); 
    user.Name = "changed name"; 
    transaction.Commit(); 
} 

डीबी में अद्यतन का परिणाम देगा। यह ट्रैकिंग स्मृति का उपभोग करती है और ISession प्रदर्शन समय के साथ घटने के लिए करती है क्योंकि ट्रैक की गई इकाइयों की मात्रा बढ़ रही है।

IStatelessSession के साथ एक ही कोड कुछ भी नहीं करेगा। स्टेटलेस सत्र का उपयोग तब किया जाता है जब आपको बहुत सारे डेटा लोड करने और कुछ बैचिंग ऑपरेशन करने की आवश्यकता होती है। इसका उपयोग अधिक "ado.net" शैली में बड़े डेटा सेट के साथ काम करने के लिए किया जा सकता है।

+7

इस उत्तर को 'स्टेटलेस सत्र' के बारे में अधिक जानकारी चाहिए। एक कोड उदाहरण के बारे में जहां आप 'StatelessSession' के साथ डेटाबेस अद्यतन करते हैं? – Jess

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