Linq上下文对象没有注册为System类型.IDisposable对象

本文关键字:对象 System 类型 IDisposable 上下文 Linq 注册 | 更新日期: 2023-09-27 18:02:29

我试图在using语句中使用我的'context'对象。它在一个项目上工作,但在另一个项目上,我得到以下错误:

"……在using语句中使用的类型必须是隐式可转换的的系统。IDisposable '

当我指的是'context'对象时,我指的是当你使用LINQ to SQL时自动创建的对象。

我正在工作的类,实现了另一个接口,可能会搞砸这个上下文对象吗?

using (TGDC context = new TGDC())
            {
            }

使用

下面有红色的弯线(错误)

Linq上下文对象没有注册为System类型.IDisposable对象

您应该添加对System.Data.Linq的引用。我想这就是问题所在。

或者,如果您正在使用实体框架,请确保您有System.Data.EntitySystem.Data.Objects (c#: using/VB)的引用。. NET: Imports).

添加EntityFramework.dll程序集的引用,该程序集由定义EF上下文类的项目引用。

添加对EntityFramework程序集的引用

这是一个老问题,但自从我通过谷歌搜索发现它:

我在Visual Studio 2010中工作时遇到过这种情况。

Visual Studio 2012和实体框架有些奇怪;将EF添加到现有项目中会导致安装EF 5.0 (NuGet包),而没有选择坚持使用4.0。

对这个链接问题的回答的评论是什么使实现流行。

解决方案似乎是升级到VS 2012使用的EF版本,或者使用VS 2010。

说明TGDC没有实现IDisposable接口。

TGDC的类声明是怎样的?你有更多的编译错误吗?在不同的名称空间中是否有几个名为TGDC的类?

我经常遇到这种情况,有一段时间我总是与它斗争,因为它不是立即明显是什么错了。似乎所有的障碍都被跳过了,但唉,并不是这样。最终,解决方案会被坚持下去。

在你正在写这段代码的项目中,你引用的是定义了"TGDC"的项目,但你没有引用System.Data.Linq。您需要引用这两个程序集。这只有在使用某种分层架构时才会发生。

相关文章: