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

 

Linq EF 添加数据执行事务处理的更多相关文章

  1. ef添加数据时出错 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException”类型的异常

    找半天才找到 ef添加数据时出错原因:数据库表中没有主键 ,就算表中有自增列 Added方法也会报错: -        this._db.SaveChanges() “this._db.SaveCh ...

  2. mvc+linq+EF对数据表的查删改

    /// <summary> /// 查询数据库中学生姓名 /// </summary> /// <returns></returns> public A ...

  3. EF批量添加数据性能慢的问题的解决方案

    //EF批量添加数据性能慢的问题的解决方案 public ActionResult BatchAdd() { using (var db = new ToneRoad.CEA.DbContext.Db ...

  4. VB.NET中使用Linq TO SQL添加数据后获得自增长列ID

    VB.NET中使用Linq TO SQL添加数据后获得自增长列ID: Dim tempOrdre As New Order With { .CustomerID = cmbCustomerName.S ...

  5. 【转发】Linq To EF添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题

    1:添加记录后,如何获取新添加的ID的值 比如,一个实体 TestEntity   对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef   添加一条记录后,如何 ...

  6. Linq To EF (添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)

    1:添加记录后,如何获取新添加的ID的值 比如,一个实体 TestEntity   对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef   添加一条记录后,如何 ...

  7. EF大数据批量添加性能问题(续)

    昨天在园子里发了一篇如题的文章EF大数据批量添加性能问题,就引来一大堆的吐槽,我认为知识就应该这样分享出来,不然总以为自己很了不起:再说说昨天那篇文章,很多自认为很牛逼的人都评论说把SaveChang ...

  8. MVC学习笔记(三)—用EF向数据库中添加数据

    1.在EFDemo文件夹中添加Controllers文件夹(用的是上一篇MVC学习笔记(二)—用EF创建数据库中的项目) 2.在Controllers文件夹下添加一个空的控制器(StudentsCon ...

  9. EF 通过导航添加数据

    Fluent Api是指定模型与数据库表之间的对应关系 //一对多 this.HasOptional(x => x.主表).WithMany(x => x.多表).HasForeignKe ...

随机推荐

  1. Spring源码分析:非懒加载的单例Bean初始化前后的一些操作

    之前两篇文章Spring源码分析:非懒加载的单例Bean初始化过程(上)和Spring源码分析:非懒加载的单例Bean初始化过程(下)比较详细地分析了非懒加载的单例Bean的初始化过程,整个流程始于A ...

  2. Failed to unregister the JMX name: org.apache.commons.dbcp2:name=xxx,type=BasicDataSource

    把datesource的bean的class由 org.apache.commons.dbcp2.BasicDataSource 改成 org.apache.tomcat.dbcp.dbcp.Basi ...

  3. es7新增的2个特性

  4. [转]sqlserver转换为Mysql工具使用

    https://files.cnblogs.com/files/miantiaoandrew/mss2sql_v5-3.zip 1.首先下载工具,链接如上 2.解压出来,运行mss2sql.exe 3 ...

  5. Http升级到Https (本地测试,无须域名和认证)

    在之前的语音识别的项目中,一切都在本地进行得很顺利,然后把写的Demo部署到服务器上给老大看的时候,通过IP访问(http://192.168.145.170:8080这样的形式)时,从一开始就坏掉了 ...

  6. Codeforces729D(SummerTrainingDay01-F)

    D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  7. POJ3264(KB7-G RMQ)

    Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K   otal Submissions: 52651 Case Time Limit: 2 ...

  8. 函数表达式(JavaScript高程笔记)

    函数声明 特点:函数声明提升(执行代码之前解析器会先读取函数声明,并使其在执行任何代码之前可用,意味着可以把函数声明放在调用语句之后) function functionName(arg0,arg1) ...

  9. codevs1735 方程的解数(meet in the middle)

    题意 题目链接 Sol 把前一半放在左边,后一半放在右边 meet in the middle一波 统计答案的时候开始想的是hash,然而MLE了两个点 实际上只要排序之后双指针扫一遍就行了 #inc ...

  10. 如何在Oracle数据库中查看哪些用户在执行哪些SQL

    对于DBA来说,这是一个非常常见的问题,DBA需要找出以下问题: 1.哪些用户在跑哪些SQL? 2.一个特定的SQL是被哪个用户在执行? 3.一个特定的用户在跑哪些SQL? 从这些问题中可以很明显的看 ...