我需要使用嵌套的事务范围来执行某些操作:
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;
}
我不知道:这样好吗?我可以避免使用嵌套事务吗?
答案 0 :(得分:2)
啊 - 没有说明你为什么需要嵌套交易。事务范围不应该(!)在类中。在顶层创建一个OUTSIDE交易,然后拨打所有电话。