Как использовать Entity Framework 4 с Visual Studio 2013

Недавно мы обновили нашу Visual Studio с 2010 по 2013 год. С ней появился EF 6.0, который несовместим с кодом, созданным с EF 4.

Мне нужно обновить таблицу в модели с последней версией из схемы БД. При этом, как "Обновить", так и "Добавить" после удаления определения таблицы, выполните следующие действия:

  • Удалите весь пользовательский код, уже написанный для всех типов в модели, даже если они находятся в отдельных файлах, чем модель;
  • Сгенерировать новые привязки EF 6.0;
  • (необязательно) Создайте новый репозиторий. Теперь это явно не такое же поведение, как в EF 4, которое только регенерировало репозиторий и не коснулось настраиваемого кода.

Мы не используем NuGet, но ссылаемся на библиотеку EF внутри проекта.

Я предполагаю, что VS 2013 использует другую версию генератора кода, чем VS 2010. Как мы можем вернуться к старому поведению?

UPDATE: Я попытался использовать NuGet для загрузки EF 4.3.1 и повторить шаги модели обновления (также удалить и затем воссоздать), но я все еще вижу старое поведение. Я думаю, что существует проблема с генератором кода EF VS 2013.

Ответ 1

Для меня работало следующее решение.

Дважды щелкните файл edmx и откройте его окно свойств. Измените Code Generation Strategy от T4 до Legacy Object Context. Постройте свое решение. Это может привести к тысячам ошибок, потому что у вас есть переопределенные функции и свойства, поэтому удалите все файлы, которых раньше не было.

edmx properties window