Доброго дня всем.
Вопрос следующего характера. Начал изучать 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)
Заранее спасибо за ответы.