Queryable
myに述語があるかどうかを確認する方法が必要ですWhere
。
var queryA = db.Contacts.Where(x => x.IsAdministrator);
var hasPredicate = HasPredicate(queryA);
// return true
var queryB = db.Contacts;
var hasPredicateB = HasPredicate(queryB);
// return false
これが最善のアプローチではないことは承知しており、明らかに皆さんも同意しています。
手早く表面的に説明します。
別のコンテキストで一次調査として使用する QueryBase を呼び出すクエリを返すメソッドがあります。
現在のコンテキストでは、結合を作成するために QueryBase ID のリストが必要です。
いずれにせよ、これらの調査で使用されるオブジェクトは非常に大きく複雑であるため、QueryBase を「やり直す」必要はありません。この巨大なオブジェクトに基準がなく、クエリが「生」の場合。
オブジェクトが空かどうかを検証する必要があることはわかっていますが、それは実際には機能します。他の値によって異なるいくつかの異なるデフォルト値があり、これらすべての検証は QueryBase を返すメソッド内で行われるからです。
クエリが「空」の場合は、これをスキップする必要があります。