为什么“ GO”在迁移内部工作,而不是在ExecuteSqlCommand中工作?

时间:2018-11-09 18:34:22

标签: c# entity-framework-core entity-framework-core-migrations

我知道GO不是实际有效的SQL,而是SSMS用来将脚本分成批处理的关键字。我不明白的是为什么它仍然可以在Migrations中使用。

我有几个带有GO的脚本,并将它们作为EF Core Migrations的一部分运行,这没有给我带来任何麻烦:

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

我最近更改了一种工具,以在数据库上下文上的迁移之外运行脚本:

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

这会导致错误:

  

System.Data.SqlClient.SqlException(0x80131904):“ GO”附近的语法不正确。

我了解,但是如果作为迁移的一部分,为什么它可以正常工作?

0 个答案:

没有答案