1

私のプロジェクトで linq to SQL を使用する場合、現在、コード実行のできるだけ遅くデータ コンテキストを作成し、できるだけ早く破棄しています。これにより、データ コンテキストがページ上で何度も開いたり閉じたりします。

もう 1 つのオプションは、ページのロード時にデータ クラスを開き、ページのアンロード時にそれを破棄して、接続が一度だけ開かれ、閉じられるようにすることです。

2 つの方法の最適化に大きな違いはありますか、それとも 1 つがベスト プラクティスを表していますか?

私の最初の考えは、接続を開く時間をできるだけ短くしたかったのですが、ページの読み込みがどれほど速いかを考えると、接続を開いたままにしておくことのリソースヒットよりも、これらの接続を開いたり閉じたりするのにより多くの時間を費やしているのでしょうか?

4

2 に答える 2

3

考慮すべき 1 つの点:DataContextの有効期間は、SQL Server 接続を開いたままにしておく時間には影響しません。Linq To Sql によって生成された SQL ステートメントは、クエリを評価するときにのみ実行されます。

したがって、(たとえば) を呼び出すと、. ToList()、または call.DataBind()の場合、SQL ステートメントが実行されます。その時点で接続が開かれ、閉じられます。

于 2009-10-14T17:09:24.997 に答える
1

舞台裏では、LinQ to SQL マネージャーは接続プール IIRC を使用します。したがって、明示的に接続を強制終了しない限り、それは問題ではありません。

于 2009-10-14T17:10:05.180 に答える