嵌套的情况下,怎么处理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(); } }