[英]Error calling stored procedure from Entity Framework
I'm receiving the following error: 我收到以下错误:
Procedure or function 'dsp_DeleteAgreementPackage' expects parameter '@AgreementPackageID', which was not supplied. 过程或函数“ dsp_DeleteAgreementPackage”需要未提供的参数“ @AgreementPackageID”。
Here's my code: 这是我的代码:
var param1 = new SqlParameter();
param1.ParameterName = "@AgreementPackageID";
param1.SqlDbType = SqlDbType.Int;
param1.SqlValue = package.Id;
_context.Database.ExecuteSqlCommand("dsp_DeleteAgreementPackage", param1);
I've also tried replacing the last line with: 我也尝试过将最后一行替换为:
_context.Database.ExecuteSqlCommand("dsp_DeleteAgreementPackage", new object[] { param1 });
I get the same error both ways. 两种方式我都遇到相同的错误。 I've verified that param1
does include the integer value and a parameter name of @AgreementPackageID
. 我已验证param1
确实包含整数值和@AgreementPackageID
参数名称。 Any idea what I'm doing wrong? 知道我在做什么错吗?
I think you're not including any parameter inside provided SQL command string (the parameters are required instead of simply using stored procedure name). 我认为您没有在提供的SQL命令字符串中包含任何参数(参数是必需的,而不仅仅是使用存储过程的名称)。 Try using ExecuteSqlCommand
with given @AgreementPackageID
parameter as given below: 尝试将ExecuteSqlCommand
与给定的@AgreementPackageID
参数一起使用,如下所示:
_context.Database.ExecuteSqlCommand("EXEC dsp_DeleteAgreementPackage @AgreementPackageID", param1);
Also you can remove @
sign from ParameterName
if necessary: 另外,如有必要,您也可以从ParameterName
删除@
符号:
param1.ParameterName = "AgreementPackageID";
Similar issues: 类似问题:
EntityFramework Procedure or function '' expects parameter '', which was not supplied EntityFramework过程或函数“期望参数”,未提供
Call stored procedure using ExecuteSqlCommand (expects parameters which was not supplied) 使用ExecuteSqlCommand调用存储过程(期望未提供的参数)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.