Код по умолчанию, сгенерированный из модели в Entity Framework 5, теперь наследует DbContext вместо ObjectContext.
Это по-прежнему реализует IDisposable, но если вы получаете сообщение об ошибке из строки кода, подобной этой:
using (var mymodel = new MyModelContext()) { ... }
... жалуетесь на то, что не реализуете IDisposable, то ваша проблема, скорее всего, заключается в том, что ваша модель определена в отдельной сборке, которая ссылается на EF5, и вы не добавили ссылку на EF5 в свой проект.
Как Ладислав Мрнка уже упоминал в своем ответе, если вы хотите передать строку подключения конструктору, вам нужно вручную создать собственный конструктор для этого.
Если вы хотите переключить Entity Framework обратно на старый стиль сгенерированного кода, который автоматически сгенерирует нужный вам конструктор, выполните следующие действия.
- Нажмите на поверхность конструктора вашего файла EDMX и посмотрите на окно свойств. Найдите свойство под названием «Стратегия генерации кода» и установите для него значение «По умолчанию» вместо «Нет». Это укажет Visual Studio начать создание кода для вашей объектной модели в MyModel.Designer.cs в одном большом файле, на этот раз используя ObjectContext вместо DbContext.
- Удалите следующие подфайлы из-под файла EDMX: MyModel.Context.tt, MyModel.tt. Это автоматически сгенерированные файлы, которые вам больше не нужны. Если вы не удалите их, вы получите конфликты имен классов, потому что ваши объекты будут созданы дважды.
person
BG100
schedule
24.09.2012