Я впервые использую Entity Framework 4 в приложении ASP.net.
Я хотел убедиться, что соединения с БД закрыты после выхода из оператора using, однако в профилировщике SQL Server 2005 я не вижу выхода из соединения при выходе из использования, только логин при его вводе,
Например, я начал с пустой страницы asp.net, а в Page_Load я попытался с помощью этого простого кода (и абсолютно ничего другого на странице):
using (var model = new DB("name=DB"))
{
var livre = (from l in model.books
select l).SingleOrDefault();
}
В профилировщике я вижу вход в систему Audit, но не выход из системы после оставления "using".
Поэтому я попытался явно закрыть соединение, используя следующий код:
using (var model = new DB("name=DB"))
{
var livre = (from l in model.books
select l).SingleOrDefault();
model.Connection.Close();
}
Опять я вижу логин, но не выход. Странно то, что когда я проверяю свойство ConnectionState в model.Connection после закрытия, оно указывает «Закрыто», но не в Sql Server.
Чтобы увидеть фактический выход из системы в SQL Server, мне нужно нажать кнопку «Остановить отладку» в VS2010, и при перезапуске веб-приложения только тогда я вижу выход из системы (после фактического входа в систему, когда обрабатывается моя страница).
Я начинаю задумываться, есть ли в SQL Server что-то, что могло бы держать соединение открытым, даже если оно закрыто в коде.
Есть идеи?
Спасибо