Почему "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.
Что я понимаю, но почему это работает, если часть миграции?