Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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# 从实体框架调用存储过程时出错_C#_Entity Framework_Stored Procedures - Fatal编程技术网

C# 从实体框架调用存储过程时出错

C# 从实体框架调用存储过程时出错,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,我收到以下错误: 过程或函数“dsp_DeleteAgreementPackage”需要参数“@AgreementPackageID”,但未提供该参数 这是我的密码: var param1 = new SqlParameter(); param1.ParameterName = "@AgreementPackageID"; param1.SqlDbType = SqlDbType.Int; param1.SqlValue = package.Id; _context.Database.Execu

我收到以下错误:

过程或函数“dsp_DeleteAgreementPackage”需要参数“@AgreementPackageID”,但未提供该参数

这是我的密码:

var param1 = new SqlParameter();
param1.ParameterName = "@AgreementPackageID";
param1.SqlDbType = SqlDbType.Int;
param1.SqlValue = package.Id;
_context.Database.ExecuteSqlCommand("dsp_DeleteAgreementPackage", param1);
我还尝试将最后一行替换为:

_context.Database.ExecuteSqlCommand("dsp_DeleteAgreementPackage", new object[] { param1 });

我在两方面都犯了同样的错误。我已经验证了
param1
是否包含整数值和参数名
@AgreementPackageID
。知道我做错了什么吗?

我认为您没有在提供的SQL命令字符串中包含任何参数(这些参数是必需的,而不是简单地使用存储过程名称)。尝试将
ExecuteSqlCommand
与给定的
@AgreementPackageID
参数一起使用,如下所示:

_context.Database.ExecuteSqlCommand("EXEC dsp_DeleteAgreementPackage @AgreementPackageID", param1);
如有必要,您还可以从
ParameterName
中删除
@
符号:

param1.ParameterName = "AgreementPackageID";
类似问题: