Я использую EF в своем проекте MVC. В моем проекте мне нужно использовать хранимые процедуры. Моя проблема заключается в использовании выходного параметра с хранимыми процедурами. Я не знаю, как это сделать
Параметр вывода с помощью Entity Framework
Ответ 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);
}