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 library (github.com/zzzprojects/EntityFramework-Plus)

Принятый ответ

Я думаю, вы ищете функцию EF + Query Filter Enable / Disable . В вашем случае что-то вроде этого:

// 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
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему