Почему "GO" работает внутри миграции, а не с ExecuteSqlCommand?

Я это понимаю GO не является действительным SQL-кодом, а вместо этого является ключевым словом, используемым SSMS для разделения сценариев на пакеты. То, что я не понимаю, это то, почему это все еще работает в Миграции.

У меня есть несколько сценариев с GO и запустите их как часть EF Core Migrations, что не доставило мне никаких проблем:

migrationBuilder.Sql(File.ReadAllText("ScriptContainingGO.sql"));

Недавно я внес изменения в инструмент для запуска сценариев вне Миграции в контексте базы данных:

dbContext.Database.ExecuteSqlCommand(File.ReadAllText("ScriptContainingGO.sql"));

Это приводит к ошибке:

System.Data.SqlClient.SqlException (0x80131904): неверный синтаксис рядом с GO.

Что я понимаю, но почему это работает, если часть миграции?

0 ответов

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