嵌套的情况下,怎么处理Castle.ActiveRecord的事务?

今天试了一下,原来还是很简单的,只需要使用Castle.ActiveRecord.TransactionMode.Inherits就可以了。

​http://www.castleproject.org/activerecord/documentation/trunk/usersguide/scopes.html​

 

protected void btnInsert_Click(object sender, EventArgs e)

{

Insert(3);

InsertOne();

}





private void InsertOne()

{

TransactionScope scope = new TransactionScope(Castle.ActiveRecord.TransactionMode.Inherits);

try

{

Blog blog = new Blog();

blog.Name = "blog1";

blog.Author = "Author";

blog.Create();



Insert(2);



int a = 0;

a = 100 / a;



scope.VoteCommit();

}

catch

{

scope.VoteRollBack();

throw;

}

finally

{

scope.Dispose();

}

}





private void Insert(int i)

{

TransactionScope scope = new TransactionScope(Castle.ActiveRecord.TransactionMode.Inherits);

try

{

Blog blog = new Blog();

blog.Name = "blog" + i;

blog.Author = "Author" + i;

blog.Create();

scope.VoteCommit();

}

catch

{

scope.VoteRollBack();

throw;

}

finally

{

scope.Dispose();

}

}