编程语言
首页 > 编程语言> > c#-TransactionScope的好处/用途是什么?

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

作者:互联网

我已经使用NHibernate已有一段时间了,遇到了下面使用Transaction范围的代码.

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昂贵.

一个强大的功能,但是在执行操作之前,请确保打算使用它.

标签:nhibernate,transactionscope,c
来源: https://codeday.me/bug/20191029/1957966.html