2015-09-24 8 views
-1

После того, как я обновить EntityFramework до <package id="EntityFramework" version="6.1.3" targetFramework="net45" />Соединение не было закрыто. текущее состояние данного соединения подключается

я начала получать erros как:

  • System.Data.Entity.Core.EntityException: Подключение не было закрыто. Текущее состояние соединения - это соединение.

  • System.Data.Entity.Core.EntityCommandExecutionException: ExecuteReader требует открытого и доступного соединения. Текущее состояние соединения открыто.

[InvalidOperationException: ExecuteReader требует открытого и доступного соединения. текущее состояние соединения с использованием открыто.] в System.Data.SqlClient.SqlConnection.GetOpenConnection (метод Строки)

Я две версии, одна с предыдущей версией EF и не дает никакой ошибки и новому с новая версия, которая дает этот erros.

Кто-нибудь знает, что это такое?

PS: Я использую NewRelic для контроля за применением

+0

Это сообщение об ошибке типично для многопоточных операций в одном контексте – Seb

+0

У меня нет функции с многопоточными операциями. – Carlos

+0

Пожалуйста, введите код – Alireza

ответ

0

КАЖЕТСЯ, вы должны следовать инструкциям из here:

Для тех, кто до сих пор с этой проблемой, посмотрите проверить эту ссылку:

How to: Manually Open the Connection from the Object Context

Проблема заключается в том, что каркас сущности автоматически открывает и закрывает соединение с каждым кал l в базу данных, поэтому при использовании транзакции вы пытаетесь распространить транзакцию через несколько соединений, которые поднимаются до MSDTC.

Откройте соединение вручную и закройте его, когда закончите. Тогда фреймворк будет использовать только одно соединение для всех ваших вызовов.

Снова проверьте ссылку для получения более подробной информации.