From 86d543aee98a1bb608743c021d6995049d3d2c48 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Tue, 2 Feb 2021 19:47:56 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20Repository.DataFilter?= =?UTF-8?q?=20=E5=8F=AF=E7=A6=81=E7=94=A8=20GlobalFilter=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repository/ContextSet/RepositoryDbSet.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs b/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs index 55db9b9f..260cbd6e 100644 --- a/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs +++ b/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs @@ -20,16 +20,16 @@ namespace FreeSql { var select = base.OrmSelect(dywhere); - var filters = (_repo.DataFilter as DataFilter)._filters.Where(a => a.Value.IsEnabled == true); - foreach (var filter in filters) select.Where(filter.Value.Expression); - return select.AsTable(_repo.AsTableSelectValueInternal); + var filters = (_repo.DataFilter as DataFilter)._filters; + foreach (var filter in filters.Where(a => a.Value.IsEnabled == true)) select.Where(filter.Value.Expression); + return select.AsTable(_repo.AsTableSelectValueInternal).DisableGlobalFilter(filters.Where(a => a.Value.IsEnabled == false).Select(a => a.Key).ToArray()); } internal ISelect OrmSelectInternal(object dywhere) => OrmSelect(dywhere); protected override IUpdate OrmUpdate(IEnumerable entitys) { var update = base.OrmUpdate(entitys); - var filters = (_repo.DataFilter as DataFilter)._filters.Where(a => a.Value.IsEnabled == true); - foreach (var filter in filters) + var filters = (_repo.DataFilter as DataFilter)._filters; + foreach (var filter in filters.Where(a => a.Value.IsEnabled == true)) { if (entitys != null) foreach (var entity in entitys) @@ -37,15 +37,15 @@ namespace FreeSql throw new Exception($"FreeSql.Repository Update 失败,因为设置了过滤器 {filter.Key}: {filter.Value.Expression},更新的数据不符合 {_db.OrmOriginal.GetEntityString(_entityType, entity)}"); update.Where(filter.Value.Expression); } - return update.AsTable(_repo.AsTableValueInternal); + return update.AsTable(_repo.AsTableValueInternal).DisableGlobalFilter(filters.Where(a => a.Value.IsEnabled == false).Select(a => a.Key).ToArray()); } internal IUpdate OrmUpdateInternal(IEnumerable entitys) => OrmUpdate(entitys); protected override IDelete OrmDelete(object dywhere) { var delete = base.OrmDelete(dywhere); - var filters = (_repo.DataFilter as DataFilter)._filters.Where(a => a.Value.IsEnabled == true); - foreach (var filter in filters) delete.Where(filter.Value.Expression); - return delete.AsTable(_repo.AsTableValueInternal); + var filters = (_repo.DataFilter as DataFilter)._filters; + foreach (var filter in filters.Where(a => a.Value.IsEnabled == true)) delete.Where(filter.Value.Expression); + return delete.AsTable(_repo.AsTableValueInternal).DisableGlobalFilter(filters.Where(a => a.Value.IsEnabled == false).Select(a => a.Key).ToArray()); } internal IDelete OrmDeleteInternal(object dywhere) => OrmDelete(dywhere); protected override IInsert OrmInsert(TEntity entity) => OrmInsert(new[] { entity });