数据库组件 Hxj.Data (十九) (事务二)

本文介绍了一种更新数据库的方法——DbTrans,该方法简化了事务处理流程,并提供了与先前版本兼容的功能。通过使用DbTrans,可以更简洁地进行产品名称的批量更新操作。

对事务有进行了更新,又得去下载一下新版本,对上一版本兼容,扩充了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();
}

 

组件中的事务并不是分布式事务,只是简单的事务封装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值