C# VS2013调试器&x2B;实体框架:;运行时拒绝对表达式“进行求值”;,撞车
VS2013终极调试器中的Entity Framework 6.0.1在针对命中实时SQL Server的代码进行单元测试时遇到了很多问题 无法在调试器中查看包含实体的变量。例如,如果对DbContext执行LINQ查询并刷新结果视图以实际执行查询,则结果值为“无法计算子项”。如果我是ToArray(),那么现在变量是一个实体数组而不是IQueryable,数组中的每个结果都是“无法计算表达式”。如果我将该数组中的单个实体值存储到一个变量并尝试查看它,我会得到“运行时此时拒绝计算表达式” 通常,F10'通过涉及访问实体属性的行会导致Visual Studio崩溃 如果我对模拟的假DbSet运行测试,则不会发生这种情况C# VS2013调试器&x2B;实体框架:;运行时拒绝对表达式“进行求值”;,撞车,c#,linq,entity-framework,debugging,visual-studio-2013,C#,Linq,Entity Framework,Debugging,Visual Studio 2013,VS2013终极调试器中的Entity Framework 6.0.1在针对命中实时SQL Server的代码进行单元测试时遇到了很多问题 无法在调试器中查看包含实体的变量。例如,如果对DbContext执行LINQ查询并刷新结果视图以实际执行查询,则结果值为“无法计算子项”。如果我是ToArray(),那么现在变量是一个实体数组而不是IQueryable,数组中的每个结果都是“无法计算表达式”。如果我将该数组中的单个实体值存储到一个变量并尝试查看它,我会得到“运行时此时拒绝计算表达式” 通常
这是一个已知的问题吗?是否有办法解决此问题?如果有任何实体内部包含虚拟实体,则调试可能会出现问题。 我们在尝试调试Ef范围内的实体时遇到了这个问题。 实体框架然后尝试捕捉虚拟实体的状态 我们在查看db范围外的实体时得到了更好的结果。
通过这种方式,EF在查看实体值时不参与其中。我遇到了类似的问题,尽管我还不明白为什么,但打开“选项->调试->常规->使用托管兼容性模式”,允许我继续正常调试
我通过这个找到了这个选项。安装VS2013后不久,我也遇到了这个错误 “无法计算表达式” 在调试较旧的VS2012解决方案(没有任何代码涉及实体框架)时,针对大量变量执行此操作 解决方法是删除与解决方案文件关联的两个。例如,对于
MySolution.sln
,两个对应的文件是:
- MySolution.v11.suo(VS2012版)
- MySolution.v12.suo(VS2013版)
.suo
文件,问题就消失了
(注意,
.suo
文件在Windows 7上被标记为隐藏,因此如果不使用或不使用命令行查看它们,您可能无法在Windows资源管理器中轻松看到它们。)Visual Studio 2013更新2承诺修复此错误,可在以下评论中找到:
我只是想在这里的人群中加入我的声音 我正在开发一个UWP应用程序,不使用实体框架,并且遇到了一个类似的问题,运行时“拒绝计算表达式”
我使用的是Microsoft Visual Studio Enterprise 2015 Update 2,我的解决方案是更新到Update 3,在模拟案例中,DbSet的通用类型是否相同?可能实体类型有一个属性,可能是您创建的某种计算属性,它会引发异常。只是猜测而已。哇,谢谢!在AppDomain中沙箱化IronPython并尝试调试未捕获的异常时,我也遇到了同样的问题。这让我省去了很多头痛:)太棒了。我在使用WebClient在两个解决方案之间发出http请求时遇到了这个问题。如果我调试了调用所针对的解决方案,则表达式不会在那里求值。谢谢,这把它修好了。这对我有用。我在调试之后立即禁用了“使用托管兼容模式”,调试继续进行。有人知道为什么会出现这种情况吗?在循环内调试时,条件断点至关重要。我不明白他们为什么只将条件断点降级到旧调试器。要添加的一点是,在该选项可用之前,您需要关闭调试器。否则它会变灰:这也解决了我的问题,但不是从VS2012到VS2013,而是将VS2013更新为3。