在操作数据库的时候,事务提交时我们必须考虑的问题,下面针对EFCore的事务进行介绍:
1.EFCore自带默认事务SaveChanges
EFCore 的一个Context连接对应的一次SaveChanges就是一个事务处理,
我们可以在一个Context里操作多个表数据,
有对一个表进行修改,对另一个表进行新增
然后一次性调用SaveChanges;
如下代码:
///DbContext SaveChanges 事务提交 事务提交 ///事务特点:要不都成功 要么都知道 using (EFCoreContext context = new EFCoreContext()) { SysLog log = context.SysLog.FirstOrDefault(l => l.Id == 1); context.SysLog.Remove(log); SysUserInfo sysUserInfo1 = context.SysUserInfo.FirstOrDefault(a => a.Id == 6); SysUserInfo sysUserInfo2 = context.Set().Find(5); sysUserInfo1.Name += "-11"; sysUserInfo2.Name += "-22"; context.SysLog.Add(new SysLog() { UserName = "测试日志", Introduction = "描述一下" }); context.SaveChanges(); }
2.IDbContextTransaction同一数据库事务处理
//如果我需要把两个SaveC