对事务有进行了更新,又得去下载一下新版本,对上一版本兼容,扩充了DbTrans方法。
相比十七节(事务)中的事务写法简洁了一些。如下
using (DbTrans trans = DbSession.Default.BeginTransaction()) { trans.Update<Products>(Products._.ProductName, "apple", Products._.ProductID == 1); trans.Update<Products>(Products._.ProductName, "egg", Products._.ProductID == 2); trans.Commit(); }
生成的sql:
Text:
UPDATE [Products] SET [ProductName]=@e6b783222bb34b98b56fc3012500a0d5
WHERE [Products].[ProductID] = @bdb38c8f8fab405d93231e1b2f19c1e2
Parameters:
@e6b783222bb34b98b56fc3012500a0d5[String] = apple
@bdb38c8f8fab405d93231e1b2f19c1e2[Int32] = 1
Text:
UPDATE [Products] SET [ProductName]=@4184e5de4ed545d9bf3f0ba9a38ed6fa
WHERE [Products].[ProductID] = @f1da00f3628a43c2a9c66678e71049c7
Parameters:
@4184e5de4ed545d9bf3f0ba9a38ed6fa[String] = egg
@f1da00f3628a43c2a9c66678e71049c7[Int32] = 2
执行效果是一样的。
try catch的写法也是一样的。
DbTrans trans = DbSession.Default.BeginTransaction(); try { trans.Update<Products>(Products._.ProductName, "apple", Products._.ProductID == 1); trans.Update<Products>(Products._.ProductName, "egg", Products._.ProductID == 2); trans.Commit(); } catch { trans.Rollback(); } finally { trans.Close(); }
组件中的事务并不是分布式事务,只是简单的事务封装。
作者:steven hu
出处:http://www.cnblogs.com/huxj
MSN: cn_huxj@hotmail.com
交流QQ群:60831381
版权声明:欢迎任何网络媒体和网站转载本人博客的内容,只需注明作者和主博客文章地址的链接。另有约定者除外。
此声明随时可能修改,不另行通知。
出处:http://www.cnblogs.com/huxj
MSN: cn_huxj@hotmail.com
交流QQ群:60831381
版权声明:欢迎任何网络媒体和网站转载本人博客的内容,只需注明作者和主博客文章地址的链接。另有约定者除外。
此声明随时可能修改,不另行通知。
评论快速通道: