質問: l.Max(s => s.TimeStamp)}).ToList(); ``` 今の問題は、私が呼び出すリポジトリメソッドの1つに応じて、ステートメントごとにグループ内でパフォーマンスが大きく異なることです。 * DbSetを返すgetAllSetは非常に高速です。 * GetAllがIEnumerableを返すのは本当に遅いです。 誰もがこれを説明できますか。 GetAllでDbSetをIEnumerableに変換すると、Queryが実行されることになると考えていたため、大量のメモリセットを使用してグループを作成しました。 GetAllSetは "ToList()"までクエリの実行を延期していたため、サーバーでの作業によってグループを実行していました。 これは正しいです?これを説明する別の方法はありますか? GetAllはIEnumerableを返すことを望んでいます。IEnumerableに慣れているので、テストが少し簡単になります。
回答: いいえ、 `IEnumerable`に変換しても実行されません。 それは、他の一方で、オブジェクト空間へのクエリを取る**ん**ので、あなたは匿名型に投影する際に生成されるSQLは異なります。違いを確認するには、SQL Serverプロファイラを参照してください。 これはパフォーマンスの違いを説明します。 `IEnumerable` `IQueryable`代わりに`IQueryable`を返すと、SQL /パフォーマンスは同じになります。