При перемещении существующей базы данных в Entity Framework Core первоначальная миграция завершается неудачей, посколькуC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 При перемещении существующей базы данных в Entity Framework Core первоначальная миграция завершается неудачей, поскольку

Сообщение Anonymous »

Я обновляю существующую базу кода настольного компьютера (до .NET 8.0), и она поддерживает базу данных, содержащую более 50 таблиц, для использования Entity Framework Core 8.0 (с этого момента EFC); ранее мы управляли обновлениями и изменениями базы данных без помощи фреймворка (не использовали старую Entity Framework). Я настроил первоначальное создание (Add-Migration InitialCreate), которое сгенерировало файл в несколько тысяч строк как для миграции вверх, так и вниз. Однако, когда я запускаю Update-Database, происходит сбой в первой таблице, поскольку она уже существует. Я хотел бы иметь возможность использовать сгенерированный файл как для существующих пользователей в нашем следующем обновлении, так и для новых пользователей, у которых нет баз данных из предыдущей версии. Как я могу добавить проверку к миграции InitialCreate, чтобы она не выдавала исключение, если таблица уже существует?
Я уже обнаружил, что EFC позволяет нам записывать необработанные данные. sql для создания каждой из этих таблиц, но, похоже, это в значительной степени противоречит цели перехода на EFC и потребует гораздо больше времени для записи, чем если бы мы могли получить сгенерированный файл, чтобы просто проверить, существует ли уже база данных. Я также нашел предложения просто выполнить пустую первоначальную миграцию, но в результате новые пользователи останутся без необходимых таблиц.
Мы используем .NET 8.0 и EFC 8.0.
Что я пробовал и нашел на данный момент:
Я нашел несколько сообщений о переполнении стека, которые указывают на то, что это было возможно еще в Entity Framework, но не было ничего полезного для Entity Framework Core. Я также нашел сообщения в блогах, в которых предлагалось просто написать необработанный код sql для этой первой миграции, который дает доступ к оператору sql EXISTS, но это будет очень утомительно и займет несколько тысяч строк кода, и в значительной степени сводит на нет цель перемещения. в структуру, которая будет обрабатывать эти миграции sql за нас. Я также проверил, не вызываем ли мы SureCreated(), о чем идет речь в некоторых связанных вопросах SO.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ails-becau
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»