Подтвердить что ты не робот

VS2013 Debugger + Entity Framework: "среда выполнения отказалась оценивать выражение", сбои

У меня возникло множество проблем с Entity Framework 6.0.1 в отладчике Ultimate VS2013 при отладке в модульные тесты против кода, который попадает в Live SQL Server.

Переменные, содержащие объекты, не могут быть просмотрены в отладчике. Например, если я выполняю запрос LINQ в отношении моего DbContext и обновляю представление результатов для фактического выполнения запроса, значение "значение" дети не могут быть оценены ". Если я ToArray(), то теперь переменная представляет собой массив сущностей вместо IQueryable, каждый результат в массиве -" Невозможно оценить выражение ". Если я сохраняю одно значение объекта из этого массива в переменную и пытаюсь его просмотреть, я получаю" Время выполнения отказалось оценить выражение в это время".

"The runtime has refused to evaluate the expression at this time"

Часто F10 через линию, которая включает в себя доступ к свойству сущности, приводит к сбою в работе Visual Studio.

Это не происходит, если я запускаю тест против фальшивого DbSet.

Это известная проблема? Есть ли способ исправить это?

4b9b3361

Ответ 1

У меня есть аналогичная проблема, и хотя я еще не понял, почему, изменив "Параметры" → "Отладка" → "Общие" → "Использовать режим управляемой совместимости" - "Вкл.", я разрешил продолжить отладку как обычно.

Я нашел этот вариант через этот пост в блоге.

Ответ 2

Вскоре после установки VS2013 я также столкнулся с ошибкой

"Не удалось оценить выражение"

для многочисленных переменных при отладке более старого решения VS2012 (ни один из кодов не связан с инфраструктурой сущности).

Исправленное исправление заключалось в удалении двух Solution User Options (*.suo) файлов, связанных с файлом решения. Например, для MySolution.sln два соответствующих файла:

  • MySolution. v11.suo(версия VS2012)
  • MySolution. v12.suo(версия VS2013)

Кажется, что версия v12 могла быть повреждена, когда она была изначально создана с использованием настроек версии v11. Следовательно, удаление обоих из них позволило создать новый чистый файл .suo для VS2013, и проблема исчезла.

(Обратите внимание, что файлы .suo отмечены как скрытые в Windows 7, поэтому вам может не легко увидеть их в проводнике Windows без изменения настроек, чтобы показать их или используя командную строку для их просмотра.)

Ответ 3

Может возникнуть проблема с отладкой, если внутри объекта есть объекты с виртуальными объектами. У нас была эта проблема при попытке отладки в объектах внутри области Ef. Entity Framework затем пытается поймать состояние добродетельных сущностей.

Мы получили лучший результат при просмотре объектов вне области db. Таким образом, EF не участвует во время просмотра значений сущностей.

Ответ 5

Я просто хотел добавить свой голос к толпе здесь.

Я разрабатываю приложение UWP, не используя Entity Framework, и испытываю аналогичную проблему, когда среда выполнения "отказалась от оценки выражения".

Я использовал Microsoft Visual Studio Enterprise 2015 Update 2, и решение для меня предназначалось для обновления до Update 3.