Подтвердить что ты не робот

Параметр вывода с помощью Entity Framework

Я использую EF в своем проекте MVC. В моем проекте мне нужно использовать хранимые процедуры. Моя проблема заключается в использовании выходного параметра с хранимыми процедурами. Я не знаю, как это сделать

4b9b3361

Ответ 1

При создании модели сущности вы должны убедиться, что вы включили хранимые процедуры. Затем создайте для них Импорт функций:

  • Откройте вашу модель Entity в Visual Studio
  • Браузер модели должен открываться в правой части экрана.
  • В браузере моделей вам нужно выбрать хранимую процедуру и нажать "Добавить функцию импорта", чтобы создать функцию хранимой процедуры.
  • Откроется диалоговое окно для выбора хранимой процедуры и типа возврата

Что это. Теперь вы можете использовать это в коде.

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

Ответ 2

Модифицированный ответ для Entity Framework 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);            
}

Ответ 3

Вот еще один способ сделать это с помощью инфраструктуры Entity

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