Linq EF 添加数据执行事务处理

时间:2022-12-15 06:41:59

在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例

2012-12-12 10:39             5538人阅读             评论(0)             收藏              举报        
本文章已收录于:
 

 
 

在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例

(2012-03-13 10:12:48)

public ActionResult _Function21Update(string id)         {             GEN_PARAMETER parameter = db.GEN_PARAMETER.Find(id);             if (TryUpdateModel(parameter))             {

if (ModelState.IsValid)                 {                     parameter.LAST_UPDATE_DATE = DateTime.Now;                     DbConnection con = ((IObjectContextAdapter)db).ObjectContext.Connection;                     con.Open();                     using(var tran = con.BeginTransaction())                     {                         try                         {                             string testsql = "update test_current set value = '" + parameter.VALUE + "'";                             db.Database.ExecuteSqlCommand(testsql);                             db.SaveChanges();                             //testsql = "insert1 into test_log (text) values ('code:" + parameter.CODE + "value:" + parameter.VALUE + "')";                             testsql = "insert into test_log (text) values ('code:" + parameter.CODE + "value:" + parameter.VALUE + "')";                             db.Database.ExecuteSqlCommand(testsql);

tran.Commit();                         }                         catch (Exception ex)                         {                             tran.Rollback();                             db.Entry(parameter).Reload();                             Global.Logger().Error(SysAdminErr.dbSaveErr + ex.Message, ex);                         }                     }                     con.Close();                 }             }             return View(new GridModel(db.GEN_PARAMETER.Where(p => p.ENABLED == "0")));         }