EntityFramework-Plus检查数据是否实现了接口


我有一个过滤器

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

有没有办法检查“x”正在实现我的自定义界面“IGlobalDatabaseObject”?

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

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

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

一般承认的答案

我认为您正在寻找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();




许可下: CC-BY-SA
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因