Периодически возникающая проблема с ObjectContext в EF 4.1

#entity-framework #entity-framework-4.1

#entity-framework #entity-framework-4.1

Вопрос:

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

Если я удалю свою базу данных, повторно заполните и немедленно выполните:

  dbContext.Employees.Where(expr).ToList()
  

Я получаю следующую ошибку:

Экземпляр ObjectContext удален и больше не может использоваться для операций, требующих подключения.

Однако, если я удалю базу данных, повторно заполню и немедленно выполню:

  dbContext.Employees.ToList()
  

Это работает просто отлично.

Если я недавно (в том же потоке) не удалил базу данных и не перестроил ее заново, оба оператора выполняются просто отлично. Я получаю ошибку только после перестройки базы данных. Есть идеи?

Примечание: класс Employee не имеет дочерних классов. Он состоит только из целых чисел и строк.

Комментарии:

1. Почему вы удаляете базу данных в том же потоке? Это модульный тест?

2. Хороший вопрос. Да, я запускаю серию модульных тестов. Мы настроили его так, чтобы удалить базу данных, если модель данных изменилась. Если модель данных не изменилась, модульные тесты завершаются без каких-либо проблем. Однако, если модель изменилась, и ей необходимо удалить базу данных, «ToList» с предложением Where выдает ошибку.