NHibernate事务中执行SQL

近来在研究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赋上事务。

你可能感兴趣的:(Hibernate)