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 + 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
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.