博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TransactionScope 中不能使用 Nhibernate get方法
阅读量:4310 次
发布时间:2019-06-06

本文共 614 字,大约阅读时间需要 2 分钟。

纠结了好几天,今天问题终于解决了。

初试TransactionScope实现页面级事务,大概类似下面的代码

using (TransactionScope ts = new TransactionScope())

{

    try{

          Work work = Work_Dao.get(id);

          if(....){...}

          else(...){...}

          Work_Dao.Update(work);

          worklog.dealtime = DateTime.now;

          WorkLog_Dao.Update(worklog);

          //其他update、insert操作

          ....

          ....

          ts.complete();

    }

    catch(Exception ex)

    {throw ex;}

    finally{ts.Dispose();} 

}

上述代码调试时提示错误“已中止事务。”,“该操作对登记的当前状态无效。”等好几个错误。但是如果这里不用事务就可以正常使用,但是为了保证数据的完整性还是得硬着头皮去用。查遍google页面得到错误原因。

最后看了看事务事务里面用select时可能会导致死锁,于是尝试性的把“Work work = Work_Dao.get(id);”放到事务外面,大功告成!

转载于:https://www.cnblogs.com/strongbiao/archive/2013/05/21/StrongBiao.html

你可能感兴趣的文章
MemCache在.NET中使用Memcached.ClientLibrary详解 转发 https://www.cnblogs.com/li150dan/p/9529112.html...
查看>>
DB2查找替换字符串
查看>>
java可变参数
查看>>
SQLServer2008设置开启远程连接
查看>>
C#连接Sybase数据库,Anywhere 8
查看>>
CSS layout入门
查看>>
排序算法—冒泡排序
查看>>
Exchange邮件系统日志查看及管理
查看>>
匿名访问windows server 2008 R2 文件服务器的共享
查看>>
is_authenticate 和 login_required判断用户是否登录
查看>>
购物车
查看>>
java之线程池
查看>>
25 Android中dip、dp、sp、pt和px的区别
查看>>
繁星——JQuery选择器之层级
查看>>
邮件发送
查看>>
LumiSoft.Net 收发邮件
查看>>
通过SQL语句直接实现Excel与数据库的导入导出
查看>>
jenkins-小知识点
查看>>
visio二次开发——图纸解析
查看>>
如何在Windows Mobile下使用.NET Compact Framework画透明图片
查看>>