概述
在数据访问层中,过滤器(Data Filter)用于自动应用全局查询条件,如软删除过滤、多租户隔离等。以下是禁用和启用过滤器的常用操作模式。
常用过滤器类型
| 过滤器名称 | 说明 |
|---|---|
FilterNames.Delete |
软删除过滤器(过滤已删除记录) |
FilterNames.Tenant |
多租户过滤器(隔离租户数据) |
操作示例
1. 禁用删除过滤器
临时查询包含已删除的记录:
1 | using var _ = _yourRep.DataFilter.Disable(FilterNames.Delete); |
2. 仅开启删除过滤器(禁用其他所有)
先禁用全部,再单独启用删除过滤器:
1 | using var _ = _yourRep.DataFilter.DisableAll(); |
3. 禁用租户过滤器
临时跨租户查询数据:
1 | using var _ = _yourRep.DataFilter.Disable(FilterNames.Tenant); |
4. 禁用所有过滤器
完全无过滤的数据访问:
1 | using var _ = _yourRep.DataFilter.DisableAll(); |
重要注意事项
⚠️ 作用域管理
using语句确保过滤器状态在作用域结束时自动恢复- 避免手动管理过滤器状态,防止遗漏恢复
⚠️ 嵌套使用
- 支持多个过滤器同时操作
- 每个
using变量需独立命名(如_,__,___)
⚠️ 安全风险
- 禁用
Tenant过滤器可能导致数据泄露- 建议在受控的管理场景中使用
组合使用示例
1 | // 同时禁用删除和租户过滤,保留其他过滤器 |