获取输出参数值

时间:2012-02-20 20:06:03

标签: entity-framework

我在我的MVC项目中使用EF。在我的项目中,我需要使用存储过程。我的问题是使用存储过程的输出参数。我不知道该怎么做

3 个答案:

答案 0 :(得分:36)

创建实体模型时,应确保包含存储过程。然后,为它们创建函数导入:

  1. 在Visual Studio中打开您的实体模型
  2. 模型浏览器应在屏幕右侧打开
  3. 在模型浏览器中,您需要选择存储过程并单击添加功能导入以创建存储过程的功能。
  4. 将打开一个对话框以选择存储过程并返回类型
  5. 就是这样。现在你可以在代码中使用它了。

    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);
}