• 首页
  • 项目
  • 会员
  • 博客
  • 共享建站
  • 秀我网游
  • BUG反馈

只要钻研不要钱

只要钻研不要钱
不要浪费每一分每一秒,珍惜眼前,怀念过去。

博客分类

  • 心情文章
  • LINUX技术
  • 情情的故事
  • 构思
  • C#技术
  • JAVA技术
  • 其它
  • NHibernate
  • 嵌入式开发
  • 娱乐
  • 项目管理
  • 单片机
  • C语言
  • STM32

最新日志

  • 单网卡 Ubuntu 服务器打造 PPTP Server
  • Ubuntu php 环境配置
  • Ubuntu下Ftp的安装和配置(vsftpd)
  • 为Windows 7 Professional安装多语言包
  • 在 .NET Framework 3.5 中管理目录安全主体
  • 自制ghost光盘如此简单
  • NSIS安装制作基础教程
  • Magic Mouse拆解
  • 美国买的thinkpad在国内保修的方法
  • ActiveX控件打包成Cab置于网页中自动下载安装
  • VB控件实现IObjectSafety安全接口,保证控件自动下载
  • 微软代码签名证书(.pvk/.spc)签名指南
  • 如何為你的 firefox plugin 加上新的 method
  • 如何让Firefox Plugin可以在网页中自动安装
  • mozilla firefox 插件开发 快速入门

NHIBERNATE中 ISession.Delete方法 使用过程中遇到的问题.

小字体 中字体 大字体


以下两段删除代码中,如果删除失败(例如主外键约束),在当前SESSION中,该实体已经被删除。

但是在数据库中依然存在的,而此时如果使用SESSION.GET方法来获取刚才删除失败的实体,将返回NULL值。

若要查询刚才删除失败的实体,那么需要打开一个新的SESSION。

代码一:

         ///<summary> 
         ///清除数据库中Users表中的所有数据,提供一个干净的测试数据环境 
         ///</summary> 
         [Test] 
         public void ClearData() { 
              //ISession对象提供一个到后台数据库的连接,参数由App.config指定
              //ITransaction对象提供一个可以被NHibernate管理的事务。 
              ISession session = factory.OpenSession(); 
              ITransaction transaction = session.BeginTransaction();  

              //使用查询删除所有数据 
              session.Delete(”Select From User Where 1=1″);

 

 

              transaction.Commit();

              session.Close();

         }

代码二:

         ///<summary> 
         ///删除指定的对象
         ///</summary> 
         [Test] 
         public void DeleteTest() {           
              ISession session = factory.OpenSession(); 
              ITransaction transaction = session.BeginTransaction();

              User aUser;

              try { 
                   //当userId指定的数据在数据库中不存在时会抛出异常 
                   aUser = session.Load(typeof(User), userId) as User;         

                   if (aUser!=null) { session.Delete(aUser); }                  

                   transaction.Commit(); 
              }

              catch { transaction.Rollback();  }                    

              finally { session.Close();  }              

         }

回顶部回顶部


日志评论


还没有人评论.
姓名:

内容:

验证码:




  • 首页|
  • 关于我们|
  • 服务|
  • 解决方案|
  • 有话要说|
  • 业务咨询|
  • 在线项目|
  • 登录|
  • 联系我们|

Copyright © wholuck 2009. All Rights Reserved.
粤ICP备09081412号