c# - 为什么即使我的类型实现了 IDisposable,Using 语句也会出错?

标签 c# entity-framework unit-testing

在我的 DataAccess 项目中,我有以下代码:

using (TandAEntities dataContext = new TandAEntities())
{
    // Some code
}

这没有错误并且工作正常。

但是在我的单元测试项目中,我有相同的代码,但是编译器给出了一个错误; using 语句中使用的类型必须可隐式转换为 'System.IDisposable'

我按 F12 检查了定义,它确实实现了 IDisposable,并且有一个 dispose 方法。

我是否遗漏了一些引用资料?

最佳答案

链接重复项中最有可能的答案 - 缺少 using System.Data.Linq

其他选项:您在某处有陈旧的 DLL(即安装在 GAC 中)。

如果您不能通过环顾四周并检查 GAC 轻松找到陈旧的 DLL - 将代码更改为使用此类型但编译和调试测试的代码。检查 Debug->Windows->Modules 以了解实际使用的这种类型的程序集的位置。

关于c# - 为什么即使我的类型实现了 IDisposable,Using 语句也会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14474009/

相关文章:

c# - 如何告诉 Visual Studio Online VS 测试任务忽略某些 nUnit 测试类别

unit-testing - 初学者单元测试 - 测试方法的复杂输入

c# - 单元测试简单的树结构操作

c# - 如何在 Windows Phone 8.1 中以正确的旋转、宽高比拍摄照片? (使用媒体捕捉)

c# - 使用 C# 解析和执行公式

c# - 无法访问已处置的对象 Datacontext asp.net 5

c# - 使用 HasForeignKey 一对零或一

c# - Entity Framework 生成的 SQL

c# - ASP.NET Core 中 SignalR 的依赖注入(inject)

c# - 字符串、引用和垃圾收集