2012-01-20 4 views
0

Могу ли я быть уверенным, что Entity Framework проверяет соединения, полученные из пула соединений? Рассмотрите случай:Entity Framework: соединения после перезапуска SQL Server

  1. Выполнены некоторые операции CRUD;
  2. Остановка SQL-сервера;
  3. Операции CRUD не работают;
  4. запуск SQL-сервера.

Гарантировано, что после запуска SQL-сервера операции CRUD не подведут?

EF v1

Заранее спасибо

UPD: оказывается, что ADO.NET отвечает за пулы соединений, а не EF. Но в целом остается вопрос;

ответ

0

Если SQL Server останавливает все соединения, находящиеся в данный момент в пуле, будет разорван. Пул соединений не проверяет состояние соединения. Вероятнее всего, вы получите исключение для каждого сломанного соединения, но следующие вызовы создадут новое соединение, и операции CRUD снова будут работать.

Если ваша проблема связана с транзакцией, транзакция не выдержит неудачный SQL-сервер. Таким образом, операции CUD, выполненные в транзакции до отказа SQL-сервера, будут отброшены.

+0

Спасибо, правильно, что я хотел знать. Если кому-то нужна дополнительная информация, обратитесь к http://msdn.microsoft.com/en-us/library/8xx3tyca%28v=vs.80%29.aspx – borovikpe

0

Как вы хотите гарантировать, что операция CRUD не подведет ...? Можете ли вы уточнить свой вопрос?

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

Невозможно по-моему.

+0

Ну, понятно, что существует множество причин, по которым ОП может потерпеть неудачу, но вопрос в том, что «сломанные» соединения из пула. – borovikpe

+0

Извините, я виноват. Похоже, я не получил основную идею вопроса. –

Смежные вопросы