के बाद लेनदेन परिवर्तन मेरे पास निम्न कोड है (चर्चा के लिए सरलीकृत)। मुझे समझ में नहीं आता है कि क्यों session.Transaction
संपत्ति रोलबैक के बाद एक अलग लेनदेन देता है।सत्र। रोलबैक (एनएचबीरनेट)
उदाहरण के लिए, इसका मतलब है कि संपत्ति Session.Transaction.WasRolledBack
छोटी सहायता नहीं है जब तक कि मैं पहले लेनदेन का संदर्भ संग्रहीत नहीं करता और लेनदेन की संपत्ति की जांच करता हूं।
क्या कोई यहां कुछ अंतर्दृष्टि प्रदान कर सकता है?
int transId = session.Transaction.GetHashCode();
using (var tx = session.BeginTransaction())
{
Assert.AreEqual(transId, tx.GetHashCode());
tx.Rollback();
Assert.AreEqual(transId, tx.GetHashCode());
Assert.AreEqual(transId, session.Transaction.GetHashCode()); // Fails
}
अद्यतन:
डेविड Walschots 'जवाब बहुत उपयोगी और सटीक है। इसके अलावा, मैं Nhibernate Documentation में निम्नलिखित मिला:
आप लेन-देन तो आप तुरंत बंद हो जाना चाहिए रोलबैक और कार्रवाई में NHibernate से वर्तमान सत्र त्यागने सुनिश्चित करना है कि NHibernate की आंतरिक स्थिति को संगत है "