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

推荐订阅源

有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
量子位
S
SegmentFault 最新的问题
V
Visual Studio Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
Stack Overflow Blog
Stack Overflow Blog
Vercel News
Vercel News
D
Docker
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
博客园 - Franky
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
D
DataBreaches.Net
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
V
V2EX

博客园 - !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赋上事务。