c# - 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。检查它会使我的问题“消失”。我想现在的问题是简单地忽略“不在我的代码中”的异常是否安全?
解决方案
经过大量研究,我的问题原来是 Visual Studio 中的调试设置未设置为“仅启用我的代码”。(工具 -> 选项 -> 调试选项卡,仅启用我的代码)。https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2019
从我从谷歌收集到的信息来看,忽略来自外部程序集的小错误是足够安全的。假设它们不会影响您的程序逻辑。我对忽略异常并不是 100% 满意,但尽管如此。
推荐阅读
- html - 选中的复选框不起作用。HTML CSS
- reactjs - 状态触发时的 useEffect 清理
- javascript - Discord 机器人发布多个结果
- bash - 如何使用 AWK 和 ffmpeg 提取时间码
- javascript - 如何再次调用javascript中的函数?
- javascript - 按顺序进行异步调用并在错误时重复
- r - 根据 R 中的列值字符串将数据帧拆分为两个子数据帧
- python-3.x - 如何获取运算符类型并将公式应用于熊猫数据框
- c# - 如何将对象变量发送到由 BackgroundWorker 实例调用 dowork 的方法中?
- c++ - Msys2 mingw 用 openssl 构建 libcurl,但不支持 https