با سلام و وقت بخیر خدمت دوست
با استفاده از کدهای زیر میخوام transaction رو داخل برنامه پیاده کنیم که سورس درست هستش و بدون هیچ مشکلی برای بار اول مدیریت صورت میگیره اگر بدون خطا باشه داده ثبت میشه و اگر خطا داشته باشم Rollback اجرا میشه
ولی اگر دوبار پشت سر هم بخوام داده ثبت کنم با خطای زیر مواجعه هستم !!!
this sqltransaction has completed;it is no longer usable in linq
ممنون میشم راهنمائی بفرمائید .
نکته اینکه این تیکه کد داخل کلاس هستش .

bool transaction_ok =true;
try
{
Payment tblpayment = new Payment()
{
IDInsurance = IDInsurance,
DateDocument = DateDocument,
SumInsurance = SumInsurance,
SumPayment = SumPayment,
PaymentGroup = PaymentGroup,
ResultInsurance = ResultInsurance,
DatePayment = DatePayment,
Note=Note,
};
//UpdateSummaryInsurance(IDInsurance, SumPayment, ResultInsurance);
db.Transaction = db.Connection.BeginTransaction();
db.Payments.InsertOnSubmit(tblpayment);
Submit();
}
catch
{
transaction_ok = false;
}
finally
{
try
{
if (transaction_ok)
db.Transaction.Commit();
else
db.Transaction.Rollback();

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
throw;
}