私はASP.netアプリケーションで初めてエンティティフレームワーク4を使用しています。 usingステートメントを終了した後でDB接続が閉じられていることを確認したかったのですが、SQL Server 2005プロファイラーでは、使用時に接続ログアウトが表示されず、入力時にログインのみが表示されます。Entity Framework 4がSQL Server 2005のプロファイラで接続を閉じない
、私は空白のasp.netページで開始し、Page_Loadの中で、私はこの簡単なコード(とページ内の他のabsolutly何もない)で試してみました:プロファイラで
using (var model = new DB("name=DB"))
{
var livre = (from l in model.books
select l).SingleOrDefault();
}
、私は監査のログインを参照してください、しかし、 「使用中」のままにした後のログアウトではありません。
using (var model = new DB("name=DB"))
{
var livre = (from l in model.books
select l).SingleOrDefault();
model.Connection.Close();
}
は再び、私はログインはなく、ログアウトを参照してください。 は、だから私は、明示的に接続を閉じ、次のclodeを使用してみました。奇妙なことは、closeの後にmodel.ConnectionのConnectionStateプロパティを調べると、Sql Serverではなく「Closed」を示していることです。
SQL Serverの実際のログアウトを表示するには、VS2010の[デバッグを停止]ボタンを押して、Webアプリケーションを再起動するとログアウトが表示されます(ページが処理されたとき、 。
コードで閉じていても接続を開いたままにしておくSQL Serverがあるかどうか疑問に思っています。
おかげ
[接続の再利用/プール](http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx)を参照してください。 –
追加:Pooling = falseをSQL接続文字列に追加しましたが、パフォーマンスの影響に注意してください。 – Tomek
[接続プール](http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx)が表示されていると思われます。プールが接続を維持しているので、次の要求に迅速に再利用できます。 – EBarr