首页 > 解决方案 > mscorlib.dll、System.Data.dll 和 EntityFramework.dll 在输出窗口中引发的异常

问题描述

我从我的应用程序中删除了 OnModelCreating 和相关 NuGet 包 EntityFramework.DynamicFilters 的动态过滤器,因为它不再需要。一旦我这样做了,我就开始在输出窗口中看到异常。

首先,当我运行我的应用程序(带有 WPF 和 EF 的 C#)时,我得到:

抛出异常:mscorlib.dll 中的“System.TypeLoadException”

然后,当我访问我的数据(实体框架)时,当我的代码到达此语句时,我会得到一大堆异常:

public List<T> GetAll() => Table.ToList();

错误包括:

抛出异常:System.Data.dll 中的“System.Data.SqlClient.SqlException”

抛出异常:EntityFramework.dll 中的“System.Data.SqlClient.SqlException”

抛出异常:EntityFramework.dll 中的“System.Data.Entity.Core.EntityCommandExecutionException”

抛出异常:EntityFramework.SqlServer.dll 中的“System.Data.Entity.Core.EntityCommandExecutionException”

奇怪的是数据按预期返回并且应用程序似乎正在运行,但是,我的直觉告诉我不要简单地忽略它们并希望最好。

从其他帖子中获取建议,我删除了 Debug 文件夹、Cleaned Solution 和 Rebuilt solution 的内容,但没有任何改进。

按照其他建议,我卸载并重新安装了 Microsoft.Net Core 和 Microsoft.Net Framework,也没有任何改进。我的应用程序的目标是 .Net Framework 4.8

我删除并修复了 Entity Framework NuGet 包,仍然没有帮助。

为了 100% 确定这不是我的代码中的错误,我将应用程序克隆到另一台机器上,它第一次运行完美。(编辑:为了清楚起见,我还在有问题的机器上创建了一个新文件夹,并克隆到了同样的问题)这告诉我它一定是我的环境中的东西,但是什么?

我完全没有想法,没有通过硬盘格式化和重新安装 Windows,我实际上在过去 24 小时内认真考虑过几次。

阅读https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2019提示我比较了两台机器上的调试设置。原来有问题的机器没有选中 Enable Just My Code。检查它会使我的问题“消失”。我想现在的问题是简单地忽略“不在我的代码中”的异常是否安全?

标签: c#.netwpfentity-framework

解决方案


经过大量研究,我的问题原来是 Visual Studio 中的调试设置未设置为“仅启用我的代码”。(工具 -> 选项 -> 调试选项卡,仅启用我的代码)。https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2019

从我从谷歌收集到的信息来看,忽略来自外部程序集的小错误是足够安全的。假设它们不会影响您的程序逻辑。我对忽略异常并不是 100% 满意,但尽管如此。


推荐阅读