正文html
使用事物是一个比较头疼的事,业务方法各类穿插,通常使用数据库事务,那就意味着在调用事务时,须要传递数据访问上下文(新版已经不须要传递了,自动识别)数据库
还有一种解决方案使用TransactionScope,使代码块成为事务,虽然没有直接使用数据库事务高效,但方便,容易开发缓存
CRL默认为此事务框架
什么都不用传,真方便分布式
方法定义post
public bool PackageTrans(TransMethod method, out string error)大数据
在方法体内随便写,返回成功或失败以控制事务spa
//简化了事务写法,自动提交回滚 return PackageTrans((out string ex) => { ex = ""; var product = new ProductData(); product.BarCode = "code" + DateTime.Now.Millisecond; product.Number = 10; ProductDataManage.Instance.Add(product); return false; //会回滚 }, out error);
同时也提供了数据库的事务,不能跨库code
方法定义htm
public bool PackageTrans2( TransMethod method, out string error)
把操做写在方法体里就好了,由框架自动控制数据访问对象,不能跨库
//简化了事务写法,自动提交回滚 return PackageTrans2((out string ex) => { ex = ""; var product = new ProductData(); product.BarCode = "code" + DateTime.Now.Millisecond; product.Number = 10; ProductDataManage.Instance.Add(product); return false; //会回滚 }, out error);
在面对象开发中,不可能一直带着数据访问上下文的尾巴,为了省事,使用第一种方式吧,简便无优!