Подтвердить что ты не робот

Контекстный объект Linq не регистрируется как тип объекта System.IDisposable

Я пытаюсь использовать свой "контекстный" объект в операторе using. Он работает над одним проектом, но с другой стороны, я получаю следующую ошибку.

'...': тип, используемый в операторе using, должен быть неявно конвертируемым to 'System.IDisposable'

Когда я обращаюсь к объекту "context", я имею в виду объект, созданный автоматически при работе с LINQ to SQL.

Класс, в котором я работаю, реализует другой интерфейс, может ли это навязать этот объект контекста?

using (TGDC context = new TGDC())
            {

            }

слово

используя

имеет под ним красную квадратную строку (ошибка).

4b9b3361

Ответ 1

Вы должны добавить ссылку на System.Data.Linq. Я подозреваю, что проблема.

Ответ 2

Или, если вы используете Entity Framework, убедитесь, что у вас есть ссылка на System.Data.Entity и System.Data.Objects (С#: using/VB.NET: Imports).

Ответ 3

Добавьте ссылку на сборку EntityFramework.dll, на которую ссылается проект, который определяет ваш класс контекста EF.

Ответ 4

Добавить ссылку на сборку EntityFramework

Ответ 5

Это старый вопрос, но так как я нашел его через поиск Google:

Я испытал это при работе с веб-сайтом, который работал без проблем в Visual Studio 2010.

Что-то странное в Visual Studio 2012 и Entity Framework; добавление EF к существующему проекту приводит к установке EF 5.0 (пакет NuGet), без возможности использования 4.0.

Комментарий этого ответа к связанному вопросу - это то, что сделало реализацию поп-музыки.

Решение похоже на обновление версии EF, используемой VS 2012, или использование VS 2010.

Ответ 6

В нем говорится, что TGDC не реализует интерфейс IDisposable.

Как выглядит декларация класса для TGDC? У вас больше ошибок компилятора? У вас есть несколько классов с именем TGDC в разных пространствах имен?

Ответ 7

Я получаю это периодически, и какое-то время я всегда боролся с ним, потому что не сразу понял, что случилось. Похоже, все обручи перепрыгнуты, но, увы, не так. В конце концов решение останется.

В проекте вы пишете этот код, который ссылается на проект, в котором определен ваш "TGDC", но вы не ссылаетесь на System.Data.Linq. Вы должны ссылаться на обе эти сборки. Это может произойти только тогда, когда вы используете своего рода многоуровневую архитектуру.