繁体   English   中英

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

[英]Error calling stored procedure from Entity Framework

我收到以下错误:

过程或函数“ 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";

类似问题:

EntityFramework过程或函数“期望参数”,未提供

使用ExecuteSqlCommand调用存储过程(期望未提供的参数)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM