0

我有一个过滤器

 this.Filter<BaseModel>(q => q.Where(x => x.CompanyId == companyId);

有没有办法检查任何“x”正在实现我的自定义接口“IGlobalDatabaseObject”?

 this.Filter<BaseModel>(q => q.Where(x => x.CompanyId == companyId || x is IGlobalDatabaseObject ); ?

因此,数据库查询将返回“x.CompanyId== companyId”的数据,或者该数据是否实现了全局接口

我正在使用 Ef plus 库(github.com/zzzprojects/EntityFramework-Plus)

4

1 回答 1

2

我认为您正在寻找 EF+ 查询过滤器启用/禁用功能。在你的情况下,是这样的:

// The key identifying your filter
var key = new object();

// Create filter for classes that inherit BaseModel
this.Filter<BaseModel>(key, q => q.Where(x => x.CompanyId == companyId));

// Disable the filter for classes that implement IGlobalDatabaseObject
this.Filter<IGlobalDatabaseObject>(key).Disable();
于 2017-07-06T11:54:31.297 回答