Почему "GO" работает внутри миграции, а не с ExecuteSqlCommand? - PullRequest
0 голосов
/ 09 ноября 2018

Я понимаю, что 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.

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

...