From aa187eb18a7b1b7acbb0cf7dd306ca06a3f79e7c Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Tue, 9 Jun 2020 19:26:07 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20IUnitOfWork=20Orm=20?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=9B=B4=E6=8E=A5=E8=AE=BF=E9=97=AE=20IFreeS?= =?UTF-8?q?ql=20CRUD=20=E4=BA=8B=E5=8A=A1=E4=B8=8E=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8D=95=E5=85=83=E4=B8=80=E8=87=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 16 ++++++++++++++++ FreeSql.DbContext/UnitOfWork/IUnitOfWork.cs | 7 ++++--- FreeSql.DbContext/UnitOfWork/UnitOfWork.cs | 3 +++ .../UnitOfWork/UnitOfWorkManager.cs | 3 +++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 132d875e..4854f49c 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -125,6 +125,13 @@ 清空状态数据 + + + 根据 lambda 条件删除数据 + + + + 添加 @@ -479,5 +486,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql.DbContext/UnitOfWork/IUnitOfWork.cs b/FreeSql.DbContext/UnitOfWork/IUnitOfWork.cs index be92522b..db67ee47 100644 --- a/FreeSql.DbContext/UnitOfWork/IUnitOfWork.cs +++ b/FreeSql.DbContext/UnitOfWork/IUnitOfWork.cs @@ -10,6 +10,7 @@ namespace FreeSql /// public interface IUnitOfWork : IDisposable { + IFreeSql Orm { get; } /// /// 开启事务,或者返回已开启的事务 @@ -27,7 +28,7 @@ namespace FreeSql /// /// 是否启用工作单元 /// - [Obsolete("即将删除(保留到2020-08-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")] + [Obsolete("即将删除(保留到2020-12-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")] bool Enable { get; } /// @@ -36,13 +37,13 @@ namespace FreeSql /// /// 若已开启事务(已有Insert/Update/Delete操作),调用此方法将发生异常,建议在执行逻辑前调用 /// - [Obsolete("即将删除(保留到2020-08-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")] + [Obsolete("即将删除(保留到2020-12-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")] void Close(); /// /// 开启工作单元 /// - [Obsolete("即将删除(保留到2020-08-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")] + [Obsolete("即将删除(保留到2020-12-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")] void Open(); /// diff --git a/FreeSql.DbContext/UnitOfWork/UnitOfWork.cs b/FreeSql.DbContext/UnitOfWork/UnitOfWork.cs index 941cdac8..7dea638a 100644 --- a/FreeSql.DbContext/UnitOfWork/UnitOfWork.cs +++ b/FreeSql.DbContext/UnitOfWork/UnitOfWork.cs @@ -64,6 +64,9 @@ namespace FreeSql Enable = true; } + DbContextScopedFreeSql _ormScoped; + public IFreeSql Orm => _ormScoped ?? (_ormScoped = DbContextScopedFreeSql.Create(_fsql, null, () => this)); + public IsolationLevel? IsolationLevel { get; set; } public DbTransaction GetOrBeginTransaction(bool isCreate = true) diff --git a/FreeSql.DbContext/UnitOfWork/UnitOfWorkManager.cs b/FreeSql.DbContext/UnitOfWork/UnitOfWorkManager.cs index 428fd7fb..2cf087b3 100644 --- a/FreeSql.DbContext/UnitOfWork/UnitOfWorkManager.cs +++ b/FreeSql.DbContext/UnitOfWork/UnitOfWorkManager.cs @@ -184,6 +184,7 @@ namespace FreeSql IUnitOfWork _baseUow; internal Action OnDispose; public UnitOfWorkOrginal(IUnitOfWork baseUow) => _baseUow = baseUow; + public IFreeSql Orm => _baseUow.Orm; public IsolationLevel? IsolationLevel { get => _baseUow.IsolationLevel; set => _baseUow.IsolationLevel = value; } public DbContext.EntityChangeReport EntityChangeReport => _baseUow.EntityChangeReport; @@ -205,6 +206,7 @@ namespace FreeSql IUnitOfWork _baseUow; internal Action OnDispose; public UnitOfWorkVirtual(IUnitOfWork baseUow) => _baseUow = baseUow; + public IFreeSql Orm => _baseUow.Orm; public IsolationLevel? IsolationLevel { get => _baseUow.IsolationLevel; set { } } public DbContext.EntityChangeReport EntityChangeReport => _baseUow.EntityChangeReport; @@ -222,6 +224,7 @@ namespace FreeSql internal IFreeSql _fsql; internal Action OnDispose; public UnitOfWorkNothing(IFreeSql fsql) => _fsql = fsql; + public IFreeSql Orm => _fsql; public IsolationLevel? IsolationLevel { get; set; } public DbContext.EntityChangeReport EntityChangeReport { get; } = new DbContext.EntityChangeReport();