Получить операторы вставки SQL из начального метода инициализатора базы данных
Я читал этот блог: он объясняет разницу между начальными значениями инициализатора базы данных и начальными методами миграции.
Я работаю над проектом, который использует Entity Framework с первым кодом, с включенными миграциями. Присутствует начальный инициализатор базы данных, и он будет выполняться в моей локальной базе данных, когда база данных будет создана.
Но в производственной среде я не имею права самостоятельно добавлять базы данных. Мне нужно запустить update-database -script из консоли диспетчера пакетов в пустой вновь созданной базе данных, а затем выполнить миграцию вручную.
Поскольку у меня нет прямого доступа из среды разработки к производственному серверу базы данных, я думаю вслух: нет смысла переписывать инициализатор базы данных в семя миграции.
Как я могу получить сценарий (SQL), то есть операторы вставки, определенные в начальном методе Database Initializer?
Конечно, я могу:
- запустить update-database на пустой существующей базе данных. (метод семян не выполняется)
- запустить update-database на несуществующей базе данных. (метод семян выполнен)
Проведите сравнение SQL между двумя базами данных и получите запросы INSERT таким образом.
Но должен быть более легкий путь, верно?
Почему update-database -script
не показывать операторы INSERT из начального метода инициализатора базы данных?
1 ответ
Я не уверен, что журналирование, описанное в журнале Entity Framework и перехвате операций базы данных, перехватит SQL из DatabaseInitializer. Если нет, вы можете попытаться найти сторонний профилировщик, чтобы поймать ваш SQL. Лично я использую ORM Profiler, и он ловит все, но это не бесплатно.
И да, должен быть более легкий путь.