VS2013 Debugger + Entity Framework:“运行时拒绝评估expression式”,崩溃

在针对实时SQL Server的代码debuggingunit testing时,VS2013 Ultimatedebugging器中的Entity Framework 6.0.1遇到了很多问题。

包含实体的variables不能在debugging器中查看。 例如,如果我对我的DbContext执行LINQ查询并刷新结果视图以实际执行查询,则结果值为“子项无法评估”。 如果我ToArray()它,所以现在variables是一个实体的数组而不是一个IQueryable,数组中的每个结果是“无法评估expression式”。 如果我将该数组中的单个实体值存储到一个variables中并尝试查看它,则会得到“此时运行时拒绝评估expression式”。

“运行时已拒绝评估此时的表达”

通常,通过涉及访问实体属性的行,F10会导致Visual Studio崩溃。

这不会发生,如果我运行testing对嘲弄的假DbSet。

这是一个已知的问题? 有没有办法来解决这个问题?

我有一个类似的问题,虽然我还不明白为什么,打开选项 – >debugging – >常规 – >使用托pipe兼容模式 – 打开,让我继续debugging正常。

我通过这篇博客文章find了这个选项。

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

“无法评估expression”

在debugging一个较老的VS2012解决scheme时,无数的variables(没有涉及entity framework的代码)。

修复工作是删除与Solution User Options (*.suo)文件相关联的两个Solution User Options (*.suo)文件。 例如,对于MySolution.sln ,这两个相应的文件是:

  • MySolutionv11 .suo(VS2012版本)
  • MySolutionv12 .suo(VS2013版本)

看来,v12版本最初使用v11版本的设置创build时可能已经损坏。 因此,删除它们都允许为.suo创build一个新的干净的.suo文件,问题就消失了。

(请注意, .suo文件在Windows 7上被标记为隐藏,因此在Windows资源pipe理器中可能不会轻易看到它们,而不会更改设置以显示它们或使用命令行查看它们。)

如果里面有虚拟实体的任何实体,可能有关于debugging的问题。 当试图在Ef范围内的实体进行debugging时,我们遇到了这个问题。 然后entity framework试图捕捉虚实体的状态。

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

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

我正在开发一个UWP应用程序,不使用entity framework,并遇到类似的问题,运行时“拒绝评估expression式”。

我正在使用Microsoft Visual Studio Enterprise 2015更新2 ,我的解决scheme是我更新到更新3