【OF框架】使用IDbContextTransaction在框架中对多个实体进行事务操作
准备
引用框架,按照规范建立数据库表及对应实体。
一、事务操作
关键代码
示例代码如下:
//插入数据,使用数据库事务,不支持多连接。 var dbContext = IoCHelper.Resolve<IDbContextCore>(); using (IDbContextTransaction trans = dbContext.BeginTransaction()) { try { var service1 = IoCHelper.Resolve<ICRUDService<sys_log>>(); service1.Use(dbContext); sys_log e1 = new sys_log() { Id = GuidHelper.NewGuid().ToString(), CreateDate = DateTime.Now }; int i1 = service1.Insert(e1); var service2 = IoCHelper.Resolve<ICRUDService<sys_file>>(); service2.Use(dbContext); string id = success ? GuidHelper.NewGuid().ToString() : GuidHelper.NewGuid().ToString().PadRight(100, '0'); sys_file e2 = new sys_file() { Id = id, CreateDate = DateTime.Now }; int i2 = service2.Insert(e2); trans.Commit(); return $"成功{i1},{i2}"; } catch (Exception) { trans.Rollback(); throw; } }
.NET Core 2.0 开源框架BitAdminCore作者。
框架演示:http://bit.bitdao.cn
框架使用:https://github.com/chenyinxin/cookiecutter-bitadmin-core
框架交流:QQ群202426919