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())
{
}
字
使用
下面有红色的弯线(错误)
您应该添加对System.Data.Linq
的引用。我想这就是问题所在。
或者,如果您正在使用实体框架,请确保您有System.Data.Entity
和System.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。您需要引用这两个程序集。这只有在使用某种分层架构时才会发生。