"论证' sql'不能为空"当包括" Go"在EF DbMigration

时间:2016-04-14 21:25:28

标签: c# sql-server entity-framework-6 ef-migrations

将SQL服务器GO command添加到DbMigration.Sql("GO ...")调用时,导致Update-Database实体框架方法抛出异常"参数' sql'不能为空"。

删除GO并且迁移失败,因为下一个SQL语句正在创建一个必须独立的触发器。

1 个答案:

答案 0 :(得分:5)

我发现这个问题绝对没有信息,所以认为SO可能会受益。

通过阅读,我发现在SQL Server中GO后面必须跟一个换行符,所以我认为这个问题的根本原因与EF之后如何解析SQL之前发送到数据库。

我解决问题的方法是发现DbMigration.Sql(sql, suppressTransaction=false)方法的可选参数。

suppressTransaction强制sql查询与迁移的其余部分分开(通常这称为一个事务)。因此,我无需使用GO