遅延読み込みをエミュレートするには、Eager Loading を介して完全なオブジェクト グラフを再帰的にインクルードし、エンティティの読み込み時に関連データもすべて読み込まれるようにするメソッドが必要です。
MSDN ドキュメントから:
- 単一の参照を含めるには: query.Include(e => e.Level1Reference)。
 - 単一のコレクションを含める場合: query.Include(e => e.Level1Collection)。
 - 参照を含めてから、1 レベル下の参照を含めるには: query.Include(e => e.Level1Reference.Level2Reference)。
 - 参照を含めてから 1 レベル下のコレクションを含めるには: query.Include(e => e.Level1Reference.Level2Collection)。
 - コレクションを含めてから、1 レベル下の参照を含めるには: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))。
 - コレクションを含めてから 1 レベル下のコレクションを含めるには、次のようにします。 query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
 - コレクションを含めてから、1 レベル下の参照を含めるには: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))。
 - コレクションを含めてから 1 レベル下のコレクションを含めるには、次のようにします。 query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
 - コレクション、参照、および参照を 2 レベル下に含めるには: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference))。
 - コレクション、コレクション、および 2 レベル下の参照を含めるには: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference)))。
 
質問:
新しいプロパティが追加されたかどうかに関係なく、必要なときにいつでもエンティティの深いオブジェクト グラフを取得できるように、ナビゲート可能なすべてのプロパティを再帰的に含めて、これを汎用リポジトリ メソッドに組み込むにはどうすればよいですか?