2011-07-19 54 views
18

我試圖在using語句中使用我的「上下文」對象。它適用於一個項目,但在另一個項目中,我收到以下錯誤。Linq上下文對象未註冊爲System.IDisposable對象的類型

「...」:在使用語句中使用必須是隱式轉換 爲‘System.IDisposable的’

當我指的是‘語境’的對象,我型指的是在使用LINQ to SQL時自動創建的對象。

我在裏面工作的類實現了另一個接口,可能會搞砸這個上下文對象嗎?

using (TGDC context = new TGDC()) 
      { 

      } 

使用

具有紅色squigly線在它之下(誤差)。

+0

它就像你有一個以上的TGDC類中聲明。 – hatchet

回答

36

您應該添加對System.Data.Linq的引用。我懷疑是這個問題。

+0

是的,你說得對,謝謝! – Kukoy

+9

它沒有爲我解決它。看來我需要添加一個對EntityFramework程序集的引用 –

+1

使用'Entity Framework 6',我必須添加對上述註釋中提到的EntityFramework.dll的引用。老版本的實體框架需要引用不同的程序集才能解決此問題。 – LeftyCoder

0

它說TGDC沒有實現IDisposable接口。

TGDC的類聲明如何顯示?你有更多的編譯器錯誤嗎?在不同的命名空間中是否有幾個名爲TGDC的類?

0

我週期性地收到了這個消息,並且一直以來我總是用它來解決這個問題,因爲它並不立即顯示出什麼問題。好像所有的籃球都被跳過了,但唉,不是這樣。最終解決方案將堅持下去。

在項目中,您正在編寫此代碼,您正在引用定義了「TGDC」的項目,但未引用System.Data.Linq。您需要引用這兩個程序集。這隻有在使用某種分層架構時纔會發生。

8

或者,如果你正在使用實體框架,請確保您有System.Data.EntitySystem.Data.Objects(C#:using/VB.NET:Imports)的參考。

+2

添加對System.Data.Entity的引用爲我修復了它。謝謝! –

1

這是一個老問題,但因爲我發現通過谷歌搜索:

我已經經歷過這種與網站,如果沒有問題,在Visual Studio 2010

努力工作,而有一些奇怪關於Visual Studio 2012和實體框架;將EF添加到現有項目會導致EF 5.0被安裝(NuGet包),無法選擇使用4.0。

this answer對鏈接問題的評論是什麼使得實現流行。

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

6

參考添加到由定義您的EF上下文類項目中引用的EntityFramework.dll組裝。

+0

使用VS2013 Express爲我工作。 – rkawano

3

添加一個參考的EntityFramework裝配

相關問題