嵌套的TransactionScope

时间:2011-03-10 11:26:55

标签: asp.net transactions

我需要使用嵌套的事务范围来执行某些操作:

1)插入地址

2)之后插入ContactInfo

3)之后插入UserInfo

//one class
    using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required))
                {
                    user.ContactInfo = BLContactInfo.Add(user.ContactInfo);
                    BEUser newUser  = DLSecurity.CreateUser(user);
                    transaction.Complete();

    //.......
    }

    //two class

    using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required))
                    {
                        contactInfo.Address = BLAddress.Add(contactInfo.Address);
                        BEContactInfo newContactInfo = DLContactInfo.Add(contactInfo);
                        transaction.Complete();

                        return newContactInfo;
                }

我不知道:这样好吗?我可以避免使用嵌套事务吗?

1 个答案:

答案 0 :(得分:2)

啊 - 没有说明你为什么需要嵌套交易。事务范围不应该(!)在类中。在顶层创建一个OUTSIDE交易,然后拨打所有电话。