- 增加 DbContextOptions.EnableGlobalFilter 设置是否在 DbContext/Repository 中启用全局过滤器;

This commit is contained in:
28810
2020-04-26 00:34:50 +08:00
parent b41680adfa
commit 635244786a
6 changed files with 52 additions and 15 deletions

View File

@ -43,6 +43,8 @@ namespace FreeSql
if (FreeSqlDbContextExtensions._dicSetDbContextOptions.TryGetValue(OrmOriginal.Ado.Identifier, out var opt))
{
_optionsPriv.EnableAddOrUpdateNavigateList = opt.EnableAddOrUpdateNavigateList;
_optionsPriv.EnableGlobalFilter = opt.EnableGlobalFilter;
_optionsPriv.NoneParameter = opt.NoneParameter;
_optionsPriv.OnEntityChange = opt.OnEntityChange;
}
}

View File

@ -27,6 +27,11 @@ namespace FreeSql
/// </summary>
public bool? NoneParameter { get; set; }
/// <summary>
/// 是否开启 IFreeSql GlobalFilter 功能默认true
/// </summary>
public bool EnableGlobalFilter { get; set; } = true;
/// <summary>
/// 实体变化事件
/// </summary>

View File

@ -35,15 +35,21 @@ namespace FreeSql
public ISelect<T1> Select<T1>() where T1 : class
{
_resolveDbContext?.Invoke()?.FlushCommand();
return _originalFsql.Select<T1>().WithTransaction(_resolveUnitOfWork()?.GetOrBeginTransaction(false));
var db = _resolveDbContext?.Invoke();
db?.FlushCommand();
var select = _originalFsql.Select<T1>().WithTransaction(_resolveUnitOfWork()?.GetOrBeginTransaction(false));
if (db?.Options.EnableGlobalFilter == false) select.DisableGlobalFilter();
return select;
}
public ISelect<T1> Select<T1>(object dywhere) where T1 : class => Select<T1>().WhereDynamic(dywhere);
public IDelete<T1> Delete<T1>() where T1 : class
{
_resolveDbContext?.Invoke()?.FlushCommand();
return _originalFsql.Delete<T1>().WithTransaction(_resolveUnitOfWork()?.GetOrBeginTransaction());
var db = _resolveDbContext?.Invoke();
db?.FlushCommand();
var delete = _originalFsql.Delete<T1>().WithTransaction(_resolveUnitOfWork()?.GetOrBeginTransaction());
if (db?.Options.EnableGlobalFilter == false) delete.DisableGlobalFilter();
return delete;
}
public IDelete<T1> Delete<T1>(object dywhere) where T1 : class => Delete<T1>().WhereDynamic(dywhere);
@ -53,6 +59,7 @@ namespace FreeSql
db?.FlushCommand();
var update = _originalFsql.Update<T1>().WithTransaction(_resolveUnitOfWork()?.GetOrBeginTransaction());
if (db?.Options.NoneParameter != null) update.NoneParameter(db.Options.NoneParameter.Value);
if (db?.Options.EnableGlobalFilter == false) update.DisableGlobalFilter();
return update;
}
public IUpdate<T1> Update<T1>(object dywhere) where T1 : class => Update<T1>().WhereDynamic(dywhere);