Я использую Entity Framework 4.3 в существующей базе данных, и у меня есть несколько сценариев, которые я пытаюсь удовлетворить.
Во-первых, если я удаляю свою базу данных, я бы хотел, чтобы EF воссоздал ее с нуля - для этого я успешно использовал инициализатор базы данных CreateDatabaseIfNotExists.
Во-вторых, если я обновляю свою модель и база данных уже существует, я хотел бы, чтобы база данных обновлялась автоматически - я успешно использовал Entity Framework 4.3 Migrations для этого.
Так вот мой вопрос. Скажем, я добавляю в свою модель новую таблицу, которая требует некоторых справочных данных, что является лучшим способом обеспечить создание этих данных как при запуске инициализатора базы данных, так и при выполнении миграции. Я хочу, чтобы данные создавались при создании базы данных с нуля, а также при обновлении базы данных в результате выполнения миграции.
В некоторых примерах EF-миграции я видел, как люди использовали функцию SQL () в методе UP миграции для создания начальных данных, но, если возможно, я бы предпочел использовать контекст для создания начальных данных (как вы видите в большинстве баз данных). примеры инициализатора), поскольку мне кажется странным, что вы будете использовать чистый SQL, когда вся идея EF абстрагируется от этого. Я пытался использовать контекст в методе UP, но по какой-то причине он не думал, что таблица, созданная в процессе миграции, существовала, когда я пытался добавить начальные данные непосредственно под вызовом для создания таблицы.
Любая мудрость высоко ценится.