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

如果不添加标红语句,事务期间抛出异常,数据库的数据仍会修改

最新文章

  1. DuiLib 源码分析之CDuiString
  2. greendao操作数据库的使用方法
  3. ConfuserEx
  4. 【BZOJ-1030】文本生成器 AC自动机 + DP
  5. 树状数组的笔记√(hzwer blog)
  6. Cassandra1.2文档学习(19)—— CQL索引
  7. 用JQuery编写textarea,input,checkbox,select
  8. PHP中的常量
  9. [Android开发常见问题-18] Connection to https://dl-ssl.google.com refused
  10. 单KEY业务,数据库水平切分架构实践
  11. 69.纯 CSS 创作一个单元素抛盒子的 loader
  12. rtmp简要流程
  13. yield协程
  14. json字符串转java对象
  15. C++:new&amp;delete
  16. 用MongoDB取代RabbitMQ(转)
  17. PHP:第五章——字符串的分割与替换
  18. iOS正确解决隐藏导航栏后push和pop或dismiss和present闪黑问题
  19. 成都优步uber司机奖励政策(持续更新)
  20. socketserver源码解读

热门文章

  1. CreateMutex函数 (转)
  2. LeetCode--039--组合总和(java)
  3. Flask路由之重定向
  4. 阿里云E-HPC联合安世亚太、联科集团共建云超算生态
  5. 批量搞机(一):ansible简介、ansible安装
  6. jquery ajax请求回调
  7. 【转】iis解决应用程序池**提供服务的进程意外终止进程ID是**。进程退出代码是&#39;0x80&#39;
  8. wget下载简单语法
  9. 不用print调试 xdebug ubuntu phpstorm 远程断点调试
  10. scrapy xpath xpath(&#39;---&#39;).xpath(&#39;string(.)&#39;) 提取子元素全部文本