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

После обновления модели Entity Framework Visual Studio не видит изменений

Если какие-либо изменения в моей модели EF 5.0, VS, похоже, не видит изменений. Я попытался добавить новую таблицу, которая хорошо отображается в модели, но если я попытаюсь ее использовать где-то, таблица не будет отображаться в intellisense, и я не могу ее использовать.

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

Если я полностью удалю EDMX и заново создаю его, изменения будут работать нормально. но утомительно регенерировать из базы данных каждый раз, когда я должен быть в состоянии просто "обновить модель из базы данных" и перестроить.

Раньше у меня никогда не было таких проблем с EF. Кто-нибудь знает причину или исправить эту проблему?

Спасибо.

4b9b3361

Ответ 2

Сначала создайте свой проект и, если он был успешным, щелкните правой кнопкой мыши файл "model.tt" и выберите "Запустить пользовательский инструмент". Это исправит это.

Снова создайте свой проект и укажите "model.context.tt" запустить пользовательский инструмент. это обновит списки DbSet.

Ответ 3

Это, по-видимому, ошибка в Entity Framework, что модель не обновляется, когда ваш файл Edmx находится внутри папки. Обходные пути, доступные на данный момент:

  • Установите обновление VS 2012, которое должно исправить ошибку.
  • Если вы не можете установить обновление 1, вам нужно будет щелкнуть правой кнопкой мыши по файлу шаблона model.tt T4 и запустить специальный инструмент. Это обновит классы для вас.

Надеюсь, что кто-то поможет.

Ссылка: http://thedatafarm.com/blog/data-access/watch-out-for-vs2012-edmx-code-generation-special-case/

Ответ 4

У меня также была эта проблема, однако, щелчок правой кнопкой мыши по файлу model.tt и запуск "Custom tool" для меня не меняли, но комментарий на странице Ghlouw, связанный с упомянутым, чтобы использовать меню item "BUILD > Преобразование всех шаблонов T4." который сделал это для меня

Ответ 5

У вас должен быть файл <XXX>Model.tt где-нибудь, который является шаблоном T4, который генерирует ваши классы моделей.

Если он находится в другом проекте, он не будет обновляться при сохранении файла edmx.

В любом случае попробуйте щелкнуть его правой кнопкой мыши в обозревателе решений и выбрать Run Custom Tool

Ответ 6

Щелкните правой кнопкой .tt файл .tt и выберите "Запустить пользовательский инструмент", который должен обновить его: see image

Ответ 7

Я искал этот ответ, потому что у меня была аналогичная ситуация в VS2013. В моем случае я обнаружил, что простой "Clean Solution" очистил все старые определения.

Ответ 8

Вы работаете в проекте N-Tiered? Если это так, попробуйте перестроить свой уровень данных (или везде, где хранится ваш файл EDMX), прежде чем использовать его.

Ответ 9

Я также столкнулся с этой проблемой ни с одним из классов, сгенерированных в файле model.tt. В моем случае это было связано с проблемами с тем, как я построил БД в SQL2012. Я бы установил столбец в таблице для nullable, который также был внешним ключом, и хотя я думаю, что вы должны это сделать, это вызвало проблему в EF5.

Как только это будет очищено, а диаграмма обновлена ​​из базы данных, они снова появятся.

EF5 VS2013