dbcontext apiは、ナビゲーションプロパティをICollectionsに設定しているようです(関連付けの*終了用)。クエリ可能なオブジェクトを取得する通常の方法(カウントが必要な場合など)は、
int count = dbcontext.Entry(entry).Collection(c => c.navprop).Query().Count();
ただし、データベースを頻繁にフィルタリングする場合は不便です。さらに重要なことは、それも忘れがちです。誰かが誤って言った場合
int count = entry.navprop.Count();
次に、サーバー上のすべてのデータを取得し、そこでカウントを実行しますが、これは低速です。
ObjectContextがデフォルトで使用するEntityCollectionタイプについても同じことが言えます。
int count = entry.navprop.CreateSourceQuery().Count();
ナビゲーションプロパティのデフォルトのコレクションタイプがIQueryableまたはObjectQuery、あるいはある種のクエリ可能なタイプであることをモデルまたは他の場所に設定する方法はありますか?
コンテキスト内の実際のオブジェクトセットとdbsetアイテムはクエリ可能であるように見えるため、これはナビゲーションプロパティの問題にすぎないことに注意してください。