41

I'm experiencing a lot of problems with Entity Framework 6.0.1 in the VS2013 Ultimate debugger when debugging into unit tests against code that's hitting a live SQL Server.

Variables that contain entities can't be viewed in the debugger. For example, if I execute a LINQ query against my DbContext and refresh the results view to actually execute the query, the Results value is "children could not be evaluated". If I ToArray() it, so now the variable is an array of entities instead of an IQueryable, each result in the array is "Could not evaluate expression". If I store a single entity value from that array to a variable and try to view it, I get "The runtime has refused to evaluate the expression at this time."

Frequently, F10'ing through a line that involves access to an entity property causes Visual Studio to crash.

This doesn't happen if I'm running the test against a mocked-up fake DbSet.

Is this a known issue? Is there a way to fix this?

4

5 回答 5

86

我遇到了类似的问题,虽然我还不明白为什么,打开选项 -> 调试 -> 常规 -> 使用托管兼容模式- 打开,让我可以继续正常调试。

我通过这篇博文找到了这个选项。

于 2013-11-28T10:20:33.550 回答
7

安装VS2013后不久,我也遇到了错误

“无法评估表达式”

在调试较旧的 VS2012 解决方案时用于大量变量(没有代码涉及实体框架)。

有效的修复是删除与解决方案文件关联的两个文件Solution User Options (*.suo)例如,对于MySolution.sln,两个对应的文件是:

  • 我的解决方案v11 .suo(VS2012版)
  • 我的解决方案v12 .suo(VS2013版)

最初使用 v11 版本的设置创建 v12 版本时,它似乎已损坏。.suo因此,删除它们两个允许为 VS2013 创建一个新的干净文件,问题就消失了。

(注意,这些.suo文件在 Windows 7 上被标记为隐藏,因此如果不更改设置以显示它们或使用命令行查看它们,您可能无法在 Windows 资源管理器中轻松看到它们。)

于 2014-01-15T00:03:34.007 回答
0

Visual Studio 2013 Update 2承诺修复此错误,可在以下评论中找到:

http://weblog.west-wind.com/posts/2013/Nov/21/Visual-Studio-2013-Could-not-evaluate-Expression-Debugger-Abnormality

于 2014-05-01T21:51:30.793 回答
0

如果里面有任何带有虚拟实体的实体,调试可能会出现问题。我们在尝试在 Ef 范围内的实体上进行调试时遇到了这个问题。实体框架然后尝试捕获虚拟实体的状态。

在查看 db 范围之外的实体时,我们得到了更好的结果。这样,在观察实体值时不涉及 EF。

于 2013-11-15T13:42:12.100 回答
0

我只是想为这里的人群添加我的声音。

我正在开发一个 UWP 应用程序,而不是使用实体框架,并且遇到了运行时“拒绝评估表达式”的类似问题。

我使用的是Microsoft Visual Studio Enterprise 2015 Update 2,我的解决方案是更新到Update 3

于 2016-08-17T16:20:42.807 回答