#entity-framework
#entity-framework
Вопрос:
Я знаю, что это не разработанный метод использования EntityFramework, но мне намного проще разрабатывать базу данных в SQL Management Studio для создания индексов, связывания внешних ключей и т.д… все визуально. Но я действительно хочу использовать автоматические обновления базы данных в будущем при развертывании обновлений для клиентов.
Я разработал исходную базу данных в SQL Management Studio, затем сначала создал код EntityFramework из этой базы данных. Но если я хочу добавить еще одну таблицу до сих пор, я в конечном итоге удаляю все, а затем восстанавливаю базу данных из SQL Management Studio. Это было нормально для первой части разработки моего фреймворка, но теперь все начинает становиться немного сложнее.
Я пытался изучить механизм «сначала код», но некоторые из более сложных элементов меня зацепили, и у меня не так много времени, чтобы выделить на это. Я надеялся, что существует гибридный способ проектирования в SQL Management Studio с последующим использованием функциональности развертывания базы данных, встроенной в EntityFramework.
Ответ №1:
Я работаю над запуском обратного генератора POCO, но у меня возникли некоторые проблемы. В конечном счете, я думаю, что это тот путь, которым я хочу пойти. Но я нашел временное решение проблемы с помощью существующих инструментов, встроенных в VS2019, пока я не заставлю этот инструмент работать.
-
Я скопировал имя модели, потому что у меня была пользовательская инициализация для строки подключения.
-
Удалите файл модели
-
Я щелкнул правой кнопкой мыши папку, в которую помещены файлы codefirst в моем решении, затем добавить-новый элемент
-
Выберите ADO.NET Модель данных объекта и именованный идентификатор такие же, как на шаге 1
-
Сначала выберите код из базы данных
-
Отмените выбор сохранения строки подключения (она не будет перезаписываться, а необходимая уже есть в app.config)
-
Выберите таблицы для импорта
-
В моем случае я отменил выбор множественных имен объектов
-
Готово
-
Обновите файл master model с помощью пользовательского инициализатора
-
В консоли диспетчера пакетов введите: add-migration (я предполагаю, что у вас уже настроены миграции)
-
назовите миграцию
-
добавление-миграция [имя на шаге 12] (это относится к миграции)
Может показаться, что это много шагов, но на самом деле это не так. И пока, поиграв с ним пару дней, я не сталкиваюсь ни с какими проблемами.