वे differenrt हैं - Session.Save
किसी ऑब्जेक्ट को बचाता है और Transaction.Commit
काम का एक समूह (एकाधिक गेट्स, लोड, सेव, अपडेट इत्यादि) करता है।
आप दोनों का उपयोग करना चाहेंगे। अधिक पढ़ने के लिए एक लिंक के साथ एक त्वरित स्पष्टीकरण यहां दिया गया है।
एक ISession
में, हर डेटाबेस कार्रवाई एक सौदे कि डेटाबेस कार्यों (यहां तक कि केवल पढ़ने के संचालन) को अलग कर के अंदर होता है: NHibernate प्रलेखन निम्नलिखित कहते हैं।
यदि आप स्पष्ट रूप से अपने लेनदेन को परिभाषित नहीं करते हैं, तो प्रत्येक बार जब आप डेटाबेस से पढ़ते हैं या लिखते हैं तो एक निश्चित रूप से बनाया जाएगा। बहुत कुशल नहीं है। तो अगर आप अभी पढ़ रहे हैं, तो आप सबकुछ एक लेनदेन के अंदर रखना चाहते हैं और जब आप पूरा कर लें तो लेनदेन करें। Ayende Rahien this blog post में आगे बताते हैं।
जब आप वहां कुछ कोड नमूने देखते हैं, तो ऐसा लगता है कि लोग लेनदेन का उपयोग नहीं कर रहे हैं, लेकिन वे केवल उस कोड के बाहर लेनदेन शुरू कर रहे हैं जो आप देख रहे हैं। मेरे एएसपी.Net एमवीसी ऐप में, उदाहरण के लिए, मैं अपने नियंत्रक क्रियाओं के बाहर लेनदेन को संभालने के लिए एक एक्शन फ़िल्टर (ट्रांसएक्शनएट्रिब्यूट) का उपयोग करता हूं।
स्रोत
2009-08-26 16:35:32
ट्रांसमिशन। कॉमिट या लेनदेन। कॉमिट? – twk