Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS2013调试器&x2B;实体框架:;运行时拒绝对表达式“进行求值”;,撞车_C#_Linq_Entity Framework_Debugging_Visual Studio 2013 - Fatal编程技术网

C# VS2013调试器&x2B;实体框架:;运行时拒绝对表达式“进行求值”;,撞车

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,数组中的每个结果都是“无法计算表达式”。如果我将该数组中的单个实体值存储到一个变量并尝试查看它,我会得到“运行时此时拒绝计算表达式” 通常

VS2013终极调试器中的Entity Framework 6.0.1在针对命中实时SQL Server的代码进行单元测试时遇到了很多问题

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

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

如果我对模拟的假DbSet运行测试,则不会发生这种情况


这是一个已知的问题吗?是否有办法解决此问题?

如果有任何实体内部包含虚拟实体,则调试可能会出现问题。 我们在尝试调试Ef范围内的实体时遇到了这个问题。 实体框架然后尝试捕捉虚拟实体的状态

我们在查看db范围外的实体时得到了更好的结果。
通过这种方式,EF在查看实体值时不参与其中。

我遇到了类似的问题,尽管我还不明白为什么,但打开“选项->调试->常规->使用托管兼容性模式”,允许我继续正常调试


我通过这个找到了这个选项。

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

“无法计算表达式”

在调试较旧的VS2012解决方案(没有任何代码涉及实体框架)时,针对大量变量执行此操作

解决方法是删除与解决方案文件关联的两个。例如,对于
MySolution.sln
,两个对应的文件是:

  • MySolution.v11.suo(VS2012版)
  • MySolution.v12.suo(VS2013版)
似乎v12版本在最初使用v11版本的设置创建时已损坏。因此,删除这两个文件可以为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。