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

  • 相关阅读:
    Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    mac 上面安装mysql-python
    NSConditionLock
    NSCondition
    web.py 学习(二)Worker
    web.py 学习(-)Rocket web框架
    ARC 下面可能导致的内存问题
    WireShark 抓取Telnet包
    node.js里npm install --save 与 npm install --save-dev 的区别
    最近阅读链接
  • 原文地址:https://www.cnblogs.com/louby/p/4747811.html
Copyright © 2011-2022 走看看