zoukankan      html  css  js  c++  java
  • 在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例

    在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")));
            }

  • 相关阅读:
    [转载]Markdown基础语法
    [转载]转发和重定向的区别
    浅谈网站搭建中的内网穿透、端口转发等知识点
    [转载]HTTP和HTTPS
    [转载]为什么有些语言可以被反编译?而有的不能?
    例10-2 uva12169(扩展欧几里得)
    例10-1 uva11582(裴波那切数列)
    例10-7 uva10820(欧拉)
    hdu 5137(2014广州—最短路)
    hdu 5135(2014广州—状态dp)
  • 原文地址:https://www.cnblogs.com/louby/p/4747811.html
Copyright © 2011-2022 走看看