我在我的MVC项目中使用EF。在我的项目中,我需要使用存储过程。我的问题是使用存储过程的输出参数。我不知道该怎么做
答案 0 :(得分:36)
创建实体模型时,应确保包含存储过程。然后,为它们创建函数导入:
就是这样。现在你可以在代码中使用它了。
using (MyEntities myContext = new MyEntities ())
{
System.Data.Objects.ObjectParameter output = new System.Data.Objects.ObjectParameter("OutputParameterName", typeof(int));
myContext.GetCustomerCount(output);
Console.WriteLine(output.Value);
}
答案 1 :(得分:12)
实体框架6.x / VS 2015的修改后的答案 - 注意命名空间更改:
using (MyEntities myContext = new MyEntities ())
{
System.Data.Entity.Core.Objects.ObjectParameter output = new System.Data.Entity.Core.Objects.ObjectParameter("OutputParameterName", typeof(int));
myContext.GetCustomerCount(output);
Console.WriteLine(output.Value);
}
答案 2 :(得分:1)
以下是使用Entity framework
执行此操作的另一种方法YourDB db = new YourDB();
public double GetCategoryYearly(double Param1, double Param2, double Param3)
{
System.Data.Entity.Core.Objects.ObjectParameter OutputParam = new System.Data.Entity.Core.Objects.ObjectParameter("SPOutputParam", typeof(double));
var objStoredProc = db.YourStoredProc(Param1, Param2, Param3, OutputParam).First();
return Convert.ToDouble(OutputParam.Value);
}