绕过全局查询过滤器

Wah*_*sud 6 c# entity-framework-core

.NET Core 2.0 中引入的全局查询过滤器对于软删除来说非常方便。但如果出现这种情况,我如何看到那些软删除的数据呢?假设管理员想要具体查看谁被软删除。这意味着我必须以某种方式绕过该查询过滤器。现在我想我可以使用一个NotMapped属性来指示我是否想要绕过它,但我正在寻找最佳实践。

所以目前我的想法是,使用一个NotMapped属性

[NotMapped]
public bool IncludeDeletedFields { get; set; } = false;
Run Code Online (Sandbox Code Playgroud)

并在全局过滤器中使用它,例如

builder.HasQueryFilter(p => p.IncludeDeletedFields ? p.IsDeleted || !p.IsDeleted : !p.IsDeleted);
Run Code Online (Sandbox Code Playgroud)

但还有更好的办法吗?