"argument 'sql' cannot be null" 在 EF DbMigration 中包含 "Go" 时
"argument 'sql' cannot be null" when including "Go" in EF DbMigration
将 SQL 服务器 GO command
添加到 DbMigration.Sql("GO ...")
调用时导致 Update-Database
entity framework 方法抛出异常 "argument 'sql' cannot be null"。
删除 GO
并且迁移失败,因为下一个 SQL 语句正在创建一个触发器,它必须是独立的。
我完全没有找到关于这个问题的信息,所以我认为 SO 可能会有所帮助。
通过阅读,我发现在 SQL Server GO
后面必须跟一个换行符,所以我认为这个问题的根本原因与此有关,以及 EF 如何解析SQL 在发送到数据库之前。
我解决问题的方法是发现 DbMigration.Sql(sql, suppressTransaction=false)
方法的可选参数。
suppressTransaction
强制 sql 查询与迁移的其余部分分开(通常这都称为一个事务)。因此,我根本不需要使用 GO
。
将 SQL 服务器 GO command
添加到 DbMigration.Sql("GO ...")
调用时导致 Update-Database
entity framework 方法抛出异常 "argument 'sql' cannot be null"。
删除 GO
并且迁移失败,因为下一个 SQL 语句正在创建一个触发器,它必须是独立的。
我完全没有找到关于这个问题的信息,所以我认为 SO 可能会有所帮助。
通过阅读,我发现在 SQL Server GO
后面必须跟一个换行符,所以我认为这个问题的根本原因与此有关,以及 EF 如何解析SQL 在发送到数据库之前。
我解决问题的方法是发现 DbMigration.Sql(sql, suppressTransaction=false)
方法的可选参数。
suppressTransaction
强制 sql 查询与迁移的其余部分分开(通常这都称为一个事务)。因此,我根本不需要使用 GO
。