Получить операторы вставки SQL из начального метода инициализатора базы данных

Я читал этот блог: он объясняет разницу между начальными значениями инициализатора базы данных и начальными методами миграции.

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

Но в производственной среде я не имею права самостоятельно добавлять базы данных. Мне нужно запустить update-database -script из консоли диспетчера пакетов в пустой вновь созданной базе данных, а затем выполнить миграцию вручную.

Поскольку у меня нет прямого доступа из среды разработки к производственному серверу базы данных, я думаю вслух: нет смысла переписывать инициализатор базы данных в семя миграции.

Как я могу получить сценарий (SQL), то есть операторы вставки, определенные в начальном методе Database Initializer?

Конечно, я могу:

  1. запустить update-database на пустой существующей базе данных. (метод семян не выполняется)
  2. запустить update-database на несуществующей базе данных. (метод семян выполнен)

Проведите сравнение SQL между двумя базами данных и получите запросы INSERT таким образом.

Но должен быть более легкий путь, верно?

Почему update-database -script не показывать операторы INSERT из начального метода инициализатора базы данных?

1 ответ

Я не уверен, что журналирование, описанное в журнале Entity Framework и перехвате операций базы данных, перехватит SQL из DatabaseInitializer. Если нет, вы можете попытаться найти сторонний профилировщик, чтобы поймать ваш SQL. Лично я использую ORM Profiler, и он ловит все, но это не бесплатно.

И да, должен быть более легкий путь.

Другие вопросы по тегам