EntityFramework-Plus檢查數據是否實現了接口

c# entity-framework entity-framework-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 with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因