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

NHibernate事务中执行SQLITransaction trans = Session.BeginTransaction();
NHibernate事务中执行SQL
NHibernate事务中执行SQLcode 
= this.SelectCode(codeType);
NHibernate事务中执行SQLcode.CODE_CurrentCode 
+= 1;
NHibernate事务中执行SQLSession.Update(code);
NHibernate事务中执行SQLSession.Flush();           
NHibernate事务中执行SQL
NHibernate事务中执行SQL
//usage session's connection
NHibernate事务中执行SQL
IDbCommand cmd = Session.Connection.CreateCommand();
NHibernate事务中执行SQLcmd.CommandText 
= "UPDATE PBCODE SET CODE_Attribute = '1'";
NHibernate事务中执行SQLcmd.CommandType 
= CommandType.Text;
NHibernate事务中执行SQLtrans.Enlist(cmd);
NHibernate事务中执行SQLcmd.Prepare();            
NHibernate事务中执行SQLcmd.ExecuteNonQuery();
NHibernate事务中执行SQL
//end
NHibernate事务中执行SQL

NHibernate事务中执行SQLtrans.Commit();

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

相关文章:

  • 2022-12-23
  • 2021-06-30
  • 2022-02-23
  • 2021-09-05
  • 2022-12-23
  • 2021-10-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
  • 2021-06-23
  • 2021-12-19
  • 2021-10-19
  • 2021-07-31
相关资源
相似解决方案