我在 SQL Server 2008 中创建了一个简单的存储过程:
CREATE PROCEDURE viewPosts
AS
SELECT * FROM dbo.Post
现在,我不知道如何在控制器的操作中使用它,我有一个数据库对象,它是:
entities db = new entities();
请告诉我如何在实体框架中使用存储过程和这个数据库对象。
我在 SQL Server 2008 中创建了一个简单的存储过程:
CREATE PROCEDURE viewPosts
AS
SELECT * FROM dbo.Post
现在,我不知道如何在控制器的操作中使用它,我有一个数据库对象,它是:
entities db = new entities();
请告诉我如何在实体框架中使用存储过程和这个数据库对象。
有关详细信息,请查看此链接: http ://www.entityframeworktutorial.net/data-read-using-stored-procedure.aspx
希望这会帮助你。
The following code is what I use to initialize the stored procedure, then obtain the result into variable returnedResult, which in this case is the record id of a newly created record.
SqlParameter paramResult = new SqlParameter("@Result", -1);
paramResult.Direction = System.Data.ParameterDirection.Output;
var addParameters = new List<SqlParameter>
{
new SqlParameter("@JobID", EvalModel.JobID),
new SqlParameter("@SafetyEvaluator", EvalModel.SafetyEvaluator),
new SqlParameter("@EvaluationGuid", EvalModel.EvaluationGuid),
new SqlParameter("@EvalType", EvalModel.EvalType),
new SqlParameter("@Completion", EvalModel.Completion),
new SqlParameter("@ManPower", EvalModel.ManPower),
new SqlParameter("@EDate", EvalModel.EDate),
new SqlParameter("@CreateDate", EvalModel.CreateDate),
new SqlParameter("@Deficiency", EvalModel.Deficiency.HasValue ? EvalModel.Deficiency.Value : 0),
new SqlParameter("@DeficiencyComment", EvalModel.DeficiencyComment != null ? EvalModel.DeficiencyComment : ""),
new SqlParameter("@Traffic", EvalModel.Traffic.HasValue ? EvalModel.Traffic.Value : 0),
paramResult
};
// Stored procedure name is AddEval
context.Database.ExecuteSqlCommand("AddEval @JobID, @SafetyEvaluator, @EvaluationGuid, @EvalType, @Completion, @ManPower, @EDate, @CreateDate, @Deficiency, @DeficiencyComment, @Traffic, @Result OUTPUT", addParameters.ToArray());
var returnedResult = paramResult.Value;
NewEvaluationID = Convert.ToInt32(returnedResult);
见文章约 30%:
- 在设计器中,右键单击实体并选择存储过程映射。
- 单击 ,然后单击出现的下拉箭头。这会公开在数据库元数据中找到的所有函数的列表。
- 从列表中选择过程。设计者将尽最大努力将存储过程的参数与使用名称的实体属性进行匹配。在这种情况下,由于所有属性名称都与参数名称匹配,因此它会正确映射每个属性,因此您无需进行任何更改。注意:设计器无法自动检测返回的字段名称。
- 在结果列绑定部分下,单击并输入变量名称。设计者应该为这个最终映射自动选择实体键属性。