maliming
3 years ago
No known key found for this signature in database
GPG Key ID: A646B9CB645ECEA4
2 changed files with
10 additions and
10 deletions
docs/en/Data-Filtering.md
docs/zh-Hans/Data-Filtering.md
@ -255,7 +255,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
ABP abstracts the `IMongoDbRepositoryFilterer` interface to implement data filtering for the [MongoDB Integration ](MongoDB.md ), it works only if you use the repositories properly. Otherwise, you should manually filter the data.
Currently, the best way to implement a data filter for the MongoDB integration is to create a derived class of `MongoDbRepositoryFilterer` and override `AddGlobalFilters ` . Example:
Currently, the best way to implement a data filter for the MongoDB integration is to create a derived class of `MongoDbRepositoryFilterer` and override `FilterQueryable ` . Example:
````csharp
[ExposeServices(typeof(IMongoDbRepositoryFilterer< Book , Guid > ))]
@ -268,14 +268,14 @@ public class BookMongoDbRepositoryFilterer : MongoDbRepositoryFilterer<Book, Gui
{
}
public override void AddGlobalFilters(List< FilterDefinition < Book > > filters )
public override TQueryable FilterQueryable< TQueryable > (TQueryable query )
{
base.AddGlobalFilters(filters);
if (DataFilter.IsEnabled< IIsActive > ())
{
filters.Add(Builders< Book > .Filter.Eq(e => ((IIsActive)e).IsActive, true) );
return (TQueryable)query.Where(x => x.IsActive );
}
return base.FilterQueryable(query);
}
}
````
@ -190,7 +190,7 @@ protected override Expression<Func<TEntity, bool>> CreateFilterExpression<TEntit
ABP抽象了 `IMongoDbRepositoryFilterer` 接口为[MongoDB 集成](MongoDB.md)实现数据过滤, 只有正确的使用仓储,它才会工作. 否则你需要手动过滤数据.
目前为MongoDB集成实现数据过滤的最佳方法是重写派生自 `MongoDbRepositoryFilterer` 基类的 `AddGlobalFilters ` 方法:
目前为MongoDB集成实现数据过滤的最佳方法是重写派生自 `MongoDbRepositoryFilterer` 基类的 `FilterQueryable ` 方法:
````csharp
[ExposeServices(typeof(IMongoDbRepositoryFilterer< Book , Guid > ))]
@ -203,14 +203,14 @@ public class BookMongoDbRepositoryFilterer : MongoDbRepositoryFilterer<Book, Gui
{
}
public override void AddGlobalFilters(List< FilterDefinition < Book > > filters )
public override TQueryable FilterQueryable< TQueryable > (TQueryable query )
{
base.AddGlobalFilters(filters);
if (DataFilter.IsEnabled< IIsActive > ())
{
filters.Add(Builders< Book > .Filter.Eq(e => ((IIsActive)e).IsActive, true) );
return (TQueryable)query.Where(x => x.IsActive );
}
return base.FilterQueryable(query);
}
}
````