读书人

Castle ActiveRecord 事务到底如何处理

发布时间: 2011-12-11 23:19:43 作者: rapoo

Castle ActiveRecord 事务到底怎么处理啊 谢谢
TransactionScope tran = new TransactionScope();
try
{

UserInfo ui = null;


ui = new UserInfo();
ui.ID = "1";
ui.Name = "11111";
ui.Create(); //这里OK


ui = new UserInfo();

ui.ID = "2";
ui.Name = "2222";
ui.Create();//这里由于库中已经存在主键为2的记录 应该引发异常 结果这里根本没有引发异常



tran.VoteCommit();//结果提交了 但是提交后实际上并没有插入成功主键为1的记录
}
catch(Exception)
{
tran.VoteRollBack();//理论上应该在插入主键2的时候发生异常,进入此代码来回滚事务
}

[解决办法]
呵呵 帮顶吧
[解决办法]
TransactionScope transaction = new TransactionScope();

try
{
Blog blog = new Blog();
blog.Author = "hammett";
blog.Name = "some name";
blog.Save();

Post post = new Post(blog, "title", "post contents", "Castle");
post.Save();
}
catch(Exception)
{
transaction.VoteRollBack();

throw;
}
finally
{
transaction.Dispose();
}

读书人网 >.NET Framework

热点推荐