質問: AllowedQueryOptions.All)] public IActionResult Get() { return Ok(context.Vendors.AsQueryable()); } ``` ここではクエリが具体化されていないため、 `async`は実際には必要ないことを理解しています。 このコンテキストでは、いつクエリが具体化されますか? 非同期で行われていますか?
回答: あなたはそれらのすべてに答え、いくつかの質問を明確にしようとするいくつかの質問をしました。 > 非同期は本当に必要ないことを理解しています > > 非同期が実際に必要になることは決してありません。質問は非同期がアプリケーションに利益をもたらすかどうかです。たとえば、DbContextの呼び出しが行われているときに時間がかかるネットワーク操作があります。その間に非同期を使用しないと、スレッドは他の要求を処理するためにスレッドプールに戻るのではなく、応答を待機します。 はい、必要ありませんが、役に立つかもしれません。 > このコンテキストでは、いつクエリが具体化されますか? > > エンドポイントにアクセスすると、クエリは(ミドルウェアで)実体化されます。 > 非同期で行われていますか? > > いいえ、Queryableを渡すと、後で同期が実行されるまで実行を延期するだけで、非同期で何かを行うにはasync / awaitパターンを使用する必要があります