2012-11-08 25 views
0

我創建了包含我的LINQ DMBL文件,這是我設置爲另一個項目的引用,並讓我沒有任何問題與數據庫進行交互的DLL。的DataContext沒有Dispose()方法

然而,在DataContext缺少Dispose()方法,當我嘗試使用它周圍它告訴我,它不隱式轉換爲System.IDisposable包。

有我丟失的東西在這裏,作爲Dispose()方法是在DLL項目中可用。當通過DLL訪問DataContext時它以某種方式處理不同?

非常感謝

+0

您的Dispose方法的訪問修飾符可能是不正確的。確保它設置爲公開而不是私人的,內部的或受保護的。 如果你只有一個保護覆蓋您的Dispose像'保護覆蓋的Dispose()'您可能需要調用Dispose明確地通過'((IDisposable接口)myDataContext).Dispose()' – Davio

回答

1

這是非常奇怪的。在VS中引用dll和項目應該沒有(很大的)區別,就像你在引用的屬性中看到的那樣。如果它被引用爲項目,則路徑指向bin/debug(或bin/release - 取決於構建配置)中的dll。

確保您已引用System.Data.Linq程序集。

如果我嘗試在我的VS 2008 - .NET 3.5中創建DBML,我看到由dbml生成器生成的datacontext類從實現IDisposable的System.Data.Linq.DataContext繼承。

+0

就是這樣,這是因爲你認爲我沒有引用System.Data.Linq。它自動給了我Xml.Linq,但我沒有Twigged我沒有Data.Linq。非常感謝! – CrazyHorse

+1

試試ReSharper恕我直言,這是值得的錢。它會幫助你(不僅)在這種情況下。 – mipe34

+0

爲建議歡呼,有30天的免費試用,所以我會給它一個去 – CrazyHorse

相關問題