मुझे एक उपयोग कथन में एक आईडीबीट्रांसेक्शन मिला है, लेकिन मुझे यकीन नहीं है कि अगर किसी उपयोग कथन में अपवाद डाला जाता है तो उसे वापस ले जाया जाएगा। मुझे पता है कि एक उपयोग कथन निपटान() को बुलाएगा ... लेकिन क्या किसी को पता है कि रोलबैक() के लिए यह सच है या नहीं?कोई त्रुटि उत्पन्न होने पर एक उपयोग कथन डेटाबेस लेनदेन रोलबैक करेगा?
अद्यतन: साथ ही, क्या मुझे कमेटी() को स्पष्ट रूप से कॉल करने की आवश्यकता है जैसा कि मेरे पास है या क्या इसका उपयोग कथन का भी ख्याल रखा जाएगा?
मेरे कोड इस तरह तरह का दिखता है:
using Microsoft.Practices.EnterpriseLibrary.Data;
...
using(IDbConnection connection = DatabaseInstance.CreateConnection())
{
connection.Open();
using(IDbTransaction transaction = connection.BeginTransaction())
{
//Attempt to do stuff in the database
//potentially throw an exception
transaction.Commit();
}
}
हाय, बस "प्रतिबद्ध" केस को स्पष्ट करने के लिए। यह अनिवार्य है क्योंकि,() {} बस निपटान() विधि को कॉल करें। लेनदेन। डिस्प्ले क्लास को यह नहीं पता था कि क्या कमेटी स्वचालित था या नहीं तो इसे कमेट करना चाहिए या नहीं करना चाहिए :) –
यह भी देखें http://stackoverflow.com/questions/6418992/is-it-a-better-practice-to-explicitly -कॉल-लेन-देन-रोलबैक-या-लेट-ए-सिवाय – nawfal