From 255cbf33aa26cd2d7487d5dc42e2aaee9ead0834 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Tue, 4 Aug 2020 12:55:14 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20Repository=20EndEdit?= =?UTF-8?q?=20=E4=BB=A5=E4=BA=8B=E5=8A=A1=E6=96=B9=E5=BC=8F=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=EF=BC=8C=E8=8B=A5=E5=A4=96=E9=83=A8=E6=9C=AA=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=BA=8B=E5=8A=A1=E5=88=99=E8=87=AA=E5=B7=B1=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E4=BA=8B=E5=8A=A1=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repository/Repository/BaseRepository.cs | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/FreeSql.DbContext/Repository/Repository/BaseRepository.cs b/FreeSql.DbContext/Repository/Repository/BaseRepository.cs index 675cf0b4..027c53a2 100644 --- a/FreeSql.DbContext/Repository/Repository/BaseRepository.cs +++ b/FreeSql.DbContext/Repository/Repository/BaseRepository.cs @@ -142,7 +142,33 @@ namespace FreeSql } public void BeginEdit(List data) => _dbset.BeginEdit(data); - public int EndEdit() => _dbset.EndEdit(); + public int EndEdit() + { + _db.FlushCommand(); + if (UnitOfWork?.GetOrBeginTransaction(true) == null && _db.OrmOriginal.Ado.TransactionCurrentThread == null) + { + int affrows = 0; + IUnitOfWork olduow = UnitOfWork; + UnitOfWork = new UnitOfWork(_db.OrmOriginal); + try + { + affrows = _dbset.EndEdit(); + UnitOfWork.Commit(); + } + catch + { + UnitOfWork.Rollback(); + throw; + } + finally + { + UnitOfWork.Dispose(); + UnitOfWork = olduow; + } + return affrows; + } + return _dbset.EndEdit(); + } } public abstract partial class BaseRepository : BaseRepository, IBaseRepository