Linq上下文对象未注册为System.IDisposable对象的类型
我正在尝试在using语句中使用我的’context’对象。 它适用于一个项目,但另一个项目,我收到以下错误。
‘…’:在using语句中使用的类型必须可以隐式转换为’System.IDisposable’
当我指的是’context’对象时,我指的是当你使用LINQ to SQL时自动创建的对象。
我正在工作的类,实现另一个接口,可能是搞砸了这个上下文对象?
using (TGDC context = new TGDC()) { }
这个单词
运用
它下面有红色的斜线(错误)。
您应该添加对System.Data.Linq
的引用。 我怀疑这是问题所在。
或者,如果您使用的是Entity Framework,请确保您具有对System.Data.Entity
和System.Data.Objects
(C#: using
/ VB.NET:Imports)的引用。
添加对定义EF上下文类的项目引用的EntityFramework.dll程序集的引用。
添加对EntityFramework程序集的引用
这是一个较旧的问题,但自从我通过Google搜索找到它:
我在使用Visual Studio 2010中没有问题的网站时遇到过这种情况。
Visual Studio 2012和Entity Framework有些奇怪之处; 将EF添加到现有项目会导致安装EF 5.0(NuGet包),没有选择坚持使用4.0。
对这个链接问题的答案的评论是使实现流行的原因。
解决方案似乎是升级到VS 2012使用的EF版本,或使用VS 2010。
它说TGDC
没有实现IDisposable接口。
TGDC的类声明如何? 你有更多的编译错误吗? 您是否在不同的命名空间中有几个名为TGDC的类?
我定期得到这个,有一段时间我总是习惯于与它斗争,因为它没有立即明显出错了。 似乎所有的篮球都被跳过,但唉,不是这样。 最终解决方案将坚持下去。
在您正在编写此代码的项目中,您正在引用定义了“TGDC”的项目,但您没有引用System.Data.Linq。 您需要引用这两个程序集。 只有当您使用某种分层架构时才会发生这种情况。