gpt4 book ai didi

c# - TransactionScope 的好处/用途是什么?

转载 作者:行者123 更新时间:2023-11-30 14:55:17 31 4
gpt4 key购买 nike

我使用 NHibernate 有一段时间了,发现下面的代码使用了 Transaction scope

using (var scope = new TransactionScope(TransactionScopeOption.Required))
{
using (var session = sessionFactory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
// do work
}
}
}

我通常在不将代码包装到 TransactionScope 的情况下做所有事情,我是做错了什么还是只是错过了一些漂亮的功能?

最佳答案

用法是:交易。这是否是好处则更为复杂。有更直接的方式来实现事务——ADO.NET 事务。这些使用起来有点笨拙(您需要记住在每个命令上设置事务),但非常有效。

事务范围具有环境事务的优势;这使得它更容易使用。但是,它以不同的方式工作。特别是,事务范围支持多资源事务——这可能意味着多个数据库等。这通常是通过 DTC 完成的,但 DTC 有开销——它更昂贵(并且需要特定的防火墙配置等)。在许多单数据库情况下,它可以使用 LTM 而不是完整的 DTC 的捷径,但这仍然比 ADO.NET 事务更昂贵...只是不如 DTC .

一个强大的功能,但在使用之前确保您打算使用它;p

关于c# - TransactionScope 的好处/用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25725187/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com