dotnetcore / dotnetcore/FreeSql
GlobalFilter增加DynamicFilterInfo的动态复杂过滤器
- Dominant language
- C#
- Stars
- 4.4k
- Forks
- 910
- PR merge metrics
- No merged PRs in 30d
Description
#### Feature 特性
```c#
IFreeSql.GlobalFilter.Apply(string name, DynamicFilterInfo filter)
```
#### 简要描述原因
目前Filter对于固定条件支持友好 而对于动态条件或复杂条件映射只能使用
```c#
IFreeSql.GlobalFilter.Apply("name", x => IFreeSql.DynamicFilter(x));
```
```c#
[ExpressionCall]
public static class FreeSqlDatabaseFunctionExtension
{
private static ThreadLocal context = new ThreadLocal();
public static bool DynamicFilter(this IFreeSql freeSql, object entity)
{
switch (context.Value!.DataType)
{
default:
{
context.Value.Result = "1=1";
return true;
}
}
}
}
```
过程中还需要手动解析条件表达式
#### 使用场景
对于多租户场景下可以通过动态配置 AsyncLocal> 实现数据权限动态管理
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.