[英]Error when trying to run a stored procedure from my C# code
I have the following stored procedure: 我有以下存储过程:
CREATE PROCEDURE ListQuestionIds
@ExamId int
AS
BEGIN
SELECT Question.QuestionUId
FROM Objective
INNER JOIN ObjectiveDetail
ON ( Objective.objectiveId = ObjectiveDetail.objectiveId )
INNER JOIN ObjectiveTopic
ON ( ObjectiveDetail.ObjectiveDetailId = ObjectiveTopic.ObjectiveDetailId )
INNER JOIN Problem
ON ( ObjectiveTopic.SubTopicId = Problem.SubTopicId )
INNER JOIN Question
ON ( Problem.ProblemId = Question.ProblemId )
WHERE Objective.examId = @ExamId;
END;
I am using EF6.1 and I have a db context. 我正在使用EF6.1,并且具有数据库上下文。 Here is how I am trying to call the stored procedure: 这是我尝试调用存储过程的方式:
var b = db.Database.SqlQuery<string>("dbo.ListQuestionIds", 1);
It's giving me an error saying it expects the parameter @ExamId but none is supplied. 给我一个错误,说它期望参数@ExamId,但未提供任何参数。
Can someone tell me what I am doing wrong? 有人可以告诉我我在做什么错吗?
This should solve you problem 这应该可以解决您的问题
db.Database.SqlQuery<string>("dbo.ListQuestionIds @ExamId",
new SqlParameter { ParameterName = "ExamId", Value = 1 });
you have to use 你必须使用
SqlParameter param = new SqlParameter("@ExamId", 1);
db.Database.ExecuteSqlCommand("dbo.ListQuestionIds",param);
or you can also use 或者你也可以使用
db.Database.SqlQuery<string>("exec dbo.ListQuestionIds @ExamId",1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.