LINQ to SQL. Когда происходит закрытие соединения?
От: OTMOP Россия  
Дата: 31.10.08 11:52
Оценка:
Доброго дня всем.

Вопрос следующего характера. Начал изучать LINQ. Создал DataContext в который перенёс хранимую процедуру из своей базы SQL.

В коде получаю данные:


            Dim Info As New InfoDataContext()

            ' Забираем информацию
            Dim DataQuery = (From Inf In Info.procMyFullInfoGet Select Inf).Single

            Info.Dispose()


Данные выводятся, всё нормально. НО вот профайлер SQL Server показывает следующее:

Audit Login
RPC:Completed (запрос, сгенерированный LINQ)


То есть закрытия соединения не происходит.

Однако ещё интересный момент. Если вызвать запрос данных снова, то происходит такая вещь:


Audit Logout
RPC:Completed    exec sp_reset_connection
Audit Login
RPC:Completed (запрос, сгенерированный LINQ)


То есть получается, перед тем, как выполнить запрос данных повторно, LINQ закрывает соединение и открывает его снова.

Закрытие соединения происходит также при выходе из приложения.

ВНИМАНИЕ ВОПРОС. Насколько корректно такое поведение? И не должен ли LINQ закрыть соединение после отработки запроса ИЛИ ЖЕ после вызовате метода Dispose?

SQL Server: select @@version


Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)   Jul  9 2008 14:17:44   Copyright (c) 1988-2008 Microsoft Corporation  Developer Edition (64-bit) on Windows NT 6.0 <X64> (Build 6001: Service Pack 1)



Заранее спасибо за ответы.
Viva la Resistance!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.