Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;参数';sql';不能为空";当包括「;围棋;内移_C#_Sql Server_Entity Framework 6_Entity Framework Migrations - Fatal编程技术网

C# &引用;参数';sql';不能为空";当包括「;围棋;内移

C# &引用;参数';sql';不能为空";当包括「;围棋;内移,c#,sql-server,entity-framework-6,entity-framework-migrations,C#,Sql Server,Entity Framework 6,Entity Framework Migrations,将SQL server添加到DbMigration.SQL(“GO…”)调用时,导致更新数据库实体框架方法引发异常“参数'SQL'不能为null” 删除GO,迁移将失败,因为下一条SQL语句正在创建一个触发器,而该触发器必须是独立的 我完全没有发现关于这个问题的任何信息,所以我认为这样做可能会有好处 通过阅读,我发现在SQL ServerGO中必须后跟一个换行符,因此我认为这个问题的根本原因与此有关,以及EF在发送到DB之前是如何解析SQL的 我解决这个问题的方法是发现DbMigration.S

将SQL server添加到
DbMigration.SQL(“GO…”)调用时,
导致
更新数据库
实体框架方法引发异常“参数'SQL'不能为null”


删除
GO
,迁移将失败,因为下一条SQL语句正在创建一个触发器,而该触发器必须是独立的

我完全没有发现关于这个问题的任何信息,所以我认为这样做可能会有好处

通过阅读,我发现在SQL Server
GO
中必须后跟一个换行符,因此我认为这个问题的根本原因与此有关,以及EF在发送到DB之前是如何解析SQL的

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


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

GO不是SQL ServerStatement@Steve我明白你的意思,但它是在SQL Server Utilities语句下归档的,这无疑会导致混淆。您的第一条评论可能会更好地说明这是一条命令,而不是一条语句-它可能被解释为SQL Server根本不支持它。很抱歉,这只是问题文本中的一个小注释。(现已修复)。我觉得有必要写这条评论,因为尝试使用ADO.NET将包含GO命令的字符串发送到SQL Server会触发异常。