废话不多说,直接上代码:
// try之前开始事务
Meta.BeginTrans();
try{
// do something
// 强烈建议,尽可能做到只有一次提交事务,以免混乱
Meta.Commit();
}
catch{
// 出错了,需要回滚事务
Meta.Rollback();
// 继续向外抛出异常
throw;
}
XCode还支持多级事务,实际上,除了第一级事务是真实的事务外,第一级以上的事务全部都是事务计数器加一减一而已,BeginTrans加一,Commit和Rollback减一,减到0时执行真正的提交或回滚。
这个多级事务实现比较简单,只考虑了常见的情况。
XCode地址:http://xcode.codeplex.com
BTW,提前Show一下NewLife.XCode v8.0
1,扩展了的数据模型
2,增加索引和表关系特性,自动生成扩展属性
3,另一边也是有扩展属性的
4,根据索引可以生成扩展查询(在考虑优化为自动采用实体缓存)
我不相信神话,我只相信汗水!我不相信命运,我只相信双手!