将SQL服务器GO command
添加到DbMigration.Sql("GO ...")
调用时,导致Update-Database
实体框架方法抛出异常"参数' sql'不能为空"。
删除GO
并且迁移失败,因为下一个SQL语句正在创建一个必须独立的触发器。
答案 0 :(得分:5)
我发现这个问题绝对没有信息,所以认为SO可能会受益。
通过阅读,我发现在SQL Server中GO
后面必须跟一个换行符,所以我认为这个问题的根本原因与EF之后如何解析SQL之前发送到数据库。
我解决问题的方法是发现DbMigration.Sql(sql, suppressTransaction=false)
方法的可选参数。
suppressTransaction
强制sql查询与迁移的其余部分分开(通常这称为一个事务)。因此,我无需使用GO
。