DbConnection dbc = database.CreateConnection();
DbTransaction dbtt = null;
try
{
dbc.Open();
dbtt = dbc.BeginTransaction();
DbCommand storedProcCommand = this.database.GetStoredProcCommand("sp_cc_Category_Create");
storedProcCommand.Connection = dbc;//確定了command和dbc的關系,確定關系以后要使用這個dbc開始的事務即dbtt
storedProcCommand.Transaction = dbtt;//這里就指定了使用的事務
storedProcCommand.ExecuteNonQuery(); //這里不要忘記或者寫錯
//假如又創建了一個command也是使用的這個鏈接,也要使用這個事務,還要注意執行
DbCommand storedProcCommandnew = this.database.GetStoredProcCommand("sp_cc_Category_update");
storedProcCommandnew .Connection = dbc;//同上
storedProcCommandnew .Transaction = dbtt;//同上
//storedProcCommand .ExecuteNonQuery(); //如果錯寫成上面的commond會報同樣的錯誤
storedProcCommandnew .ExecuteNonQuery(); //這里如果是復制過來的不要寫錯哦,
dbtt.Commit();
}
catch
{
dbtt.Rollback();
}
finally
{
if (dbc.State == ConnectionState.Open)
dbc.Close();
}