我有一個過濾器
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 ); ?
因此,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();