LEO's DotNET Blog

技术 业务 = 企业应用软件

博客园 首页 新随笔 联系 订阅 管理

近来在研究NHibernate。在实际应用中可能会遇到NHibernate操作数据库和手工Sql一起执行的情况。在百度里搜索了一下,有一些代码,但过于复杂。自己研究出了一种方法,测试通过。

ITransaction trans = Session.BeginTransaction();

code 
= this.SelectCode(codeType);
code.CODE_CurrentCode 
+= 1;
Session.Update(code);
Session.Flush();           

//usage session's connection
IDbCommand cmd = Session.Connection.CreateCommand();
cmd.CommandText 
= "UPDATE PBCODE SET CODE_Attribute = '1'";
cmd.CommandType 
= CommandType.Text;
trans.Enlist(cmd);
cmd.Prepare();            
cmd.ExecuteNonQuery();
//end

trans.Commit();

trans.Enlist(cmd)方法,就是给cmd赋上事务。

posted on 2008-05-21 15:16  !LEO  阅读(1385)  评论(0编辑  收藏  举报