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は合法ですか? はい、理由を学ぶ