NHibernet 事务 修改操作,事务没提交,数据库数据却同步(修改)了
2024-08-28 03:41:58
Nhibernet 缓存
由于查询出来的数据和缓存关联,更新之后就算事务没执行提交操作,数据库依旧会更新,解决方法, 清空缓存,实例不和缓存关联,如下面标红代码
public bool UpdateTrainPlanAndPro(TrainPlan trainPlan,List<Pro> pros)
{
ISession ss = NHibernateHelper.FrameworkDataProvider.Instance.GetSession();
ITransaction trans = null;
using (trans = ss.BeginTransaction())
{
try
{
ss.Update(trainPlan);
var proList = Session.CreateCriteria<Pro>().Add(Expression.Eq("TId", trainPlan.Id)).List<Pro>();foreach (var item in proList)
{
item.StudyHours = trainPlan.TrainHours;
item.WorkTypeId = trainPlan.WorkId;
ss.Update(item);
}
Session.Clear();
trans.Commit();
return true;
}
catch (Exception e)
{
trans.Rollback();
return false;
}
finally
{
trans.Dispose();
}
}
}
如果不添加标红语句,事务期间抛出异常,数据库的数据仍会修改
最新文章
- DuiLib 源码分析之CDuiString
- greendao操作数据库的使用方法
- ConfuserEx
- 【BZOJ-1030】文本生成器 AC自动机 + DP
- 树状数组的笔记√(hzwer blog)
- Cassandra1.2文档学习(19)—— CQL索引
- 用JQuery编写textarea,input,checkbox,select
- PHP中的常量
- [Android开发常见问题-18] Connection to https://dl-ssl.google.com refused
- 单KEY业务,数据库水平切分架构实践
- 69.纯 CSS 创作一个单元素抛盒子的 loader
- rtmp简要流程
- yield协程
- json字符串转java对象
- C++:new&;delete
- 用MongoDB取代RabbitMQ(转)
- PHP:第五章——字符串的分割与替换
- iOS正确解决隐藏导航栏后push和pop或dismiss和present闪黑问题
- 成都优步uber司机奖励政策(持续更新)
- socketserver源码解读
热门文章
- CreateMutex函数 (转)
- LeetCode--039--组合总和(java)
- Flask路由之重定向
- 阿里云E-HPC联合安世亚太、联科集团共建云超算生态
- 批量搞机(一):ansible简介、ansible安装
- jquery ajax请求回调
- 【转】iis解决应用程序池**提供服务的进程意外终止进程ID是**。进程退出代码是&#39;0x80&#39;
- wget下载简单语法
- 不用print调试 xdebug ubuntu phpstorm 远程断点调试
- scrapy xpath xpath(&#39;---&#39;).xpath(&#39;string(.)&#39;) 提取子元素全部文本