惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
IT之家
IT之家
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
U
Unit 42
爱范儿
爱范儿
博客园 - 聂微东
F
Fortinet All Blogs
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
L
LangChain Blog
雷峰网
雷峰网
B
Blog RSS Feed
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - !LEO

采用WF实现审批备案的流程定义 Inside Microsoft Windows SharePoint Services 3.0 Saas安全性问题讨论 Winform+WebService分层模型 Winform+WebService离线处理 使用BackgroundWorker控件进行异步处理 C#读取Word表格中的数据 在多个方法中共享database object的方式 Reporting Service 初体验 解决vs2005 安装项目不支持中文的问题 Mutex类解决进程线程互斥问题 Javascript调用C#静态函数 javascript:URL编解码和父子窗口交互 VisualStudio2005应用CSS和JavaScrpt的问题 两款oralce开发工具 NBear 不错 今日测试总结 SSIS计算行号 一起学习SSIS
NHibernate事务中执行SQL
!LEO · 2008-05-21 · via 博客园 - !LEO

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