nopCommerce 是国外的一个非常有名的开源B2C商城系统,基于EntityFramework和MVC开发。具体的介绍我这里就不多说了,推荐大家可以去看看。
官方网站:http://www.nopcommerce.com/
开源项目地址:https://github.com/nopSolutions/nopCommerce
前台演示地址:http://demo.nopcommerce.com/
后台演示地址:http://admin-demo.nopcommerce.com/login
后台默认的用户名:admin@yourstore.com 密码:admin
废话就不多说了,这里我们主要说下在Nop中如何使用事务。在官方的代码中几乎没有使用到事务(也许那里有但是我没有找到),但是在平时的开发中为保证数据的一致性和完整性等有可能就要使用事务。Nop的事务是依靠EF(EntityFramework)的事务来完成操作的,但是Nop内部使用IOC、面向接口编程、仓储模式等等操作导致使用事务非常的不方便。这里我分享下我的操作方法。
注意该函数的 Nop.Services里面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
public void Test() { try { //通过IOC获取DbContext的对象 IDbContext db = EngineContext.Current.Resolve<IDbContext>(); //获取Connection对象 DbConnection con = ((IObjectContextAdapter)db).ObjectContext.Connection; con.Open();//开启链接 using (var tran = con.BeginTransaction()) { // 这里才是事务中的代码 //这个函数在Service 里面,所以可以调用Insert、Update等等函数 //提交事务,如果这里发生异常就不会提交 tran.Commit(); } con.Close(); //关闭链接 } catch (Exception) { } } |
发布者:柚子,转转请注明出处:https://ityouzi.com/archives/nopcommerce_transaction.html