- 增加 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

@ -33,7 +33,9 @@ namespace FreeSql
protected virtual ISelect<TEntity> OrmSelect(object dywhere)
{
DbContextFlushCommand(); //查询前先提交,否则会出脏读
return _db.OrmOriginal.Select<TEntity>().AsType(_entityType).WithTransaction(_uow?.GetOrBeginTransaction(false)).TrackToList(TrackToList).WhereDynamic(dywhere);
var select = _db.OrmOriginal.Select<TEntity>().AsType(_entityType).WithTransaction(_uow?.GetOrBeginTransaction(false)).TrackToList(TrackToList).WhereDynamic(dywhere);
if (_db.Options.EnableGlobalFilter == false) select.DisableGlobalFilter();
return select;
}
~DbSet() => this.Dispose();
@ -65,9 +67,15 @@ namespace FreeSql
{
var update = _db.OrmOriginal.Update<TEntity>().AsType(_entityType).WithTransaction(_uow?.GetOrBeginTransaction());
if (_db.Options.NoneParameter != null) update.NoneParameter(_db.Options.NoneParameter.Value);
if (_db.Options.EnableGlobalFilter == false) update.DisableGlobalFilter();
return update.SetSource(entitys);
}
protected virtual IDelete<TEntity> OrmDelete(object dywhere) => _db.OrmOriginal.Delete<TEntity>().AsType(_entityType).WithTransaction(_uow?.GetOrBeginTransaction()).WhereDynamic(dywhere);
protected virtual IDelete<TEntity> OrmDelete(object dywhere)
{
var delete = _db.OrmOriginal.Delete<TEntity>().AsType(_entityType).WithTransaction(_uow?.GetOrBeginTransaction()).WhereDynamic(dywhere);
if (_db.Options.EnableGlobalFilter == false) delete.DisableGlobalFilter();
return delete;
}
internal void EnqueueToDbContext(DbContext.EntityChangeType changeType, EntityState state) =>
_db.EnqueuePreCommand(changeType, this, typeof(EntityState), _entityType, state);