хранимая процедура с EF 4.1 - PullRequest
0 голосов
/ 30 июня 2011

У меня есть параметризованная хранимая процедура, которая выполняет представление и возвращает результаты.В представлении отображаются результаты объединения двух таблиц.Мне нужно передать параметры этой хранимой процедуре и вызвать ее из действия контроллера MVC3, используя подход кода EF 4.1, и вернуть результаты.Как я могу это сделать.Пожалуйста, предложите шаг за шагом.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 23 сентября 2011

Вы также можете проверить этот пост.Это может помочь по крайней мере с первым шагом: выполнение процедуры с параметрами в EF 4.1

Как использовать DbContext.Database.SqlQuery (sql, params) с хранимой процедурой?EF Code First CTP5

Мой код:

context.Database.SqlQuery<EntityType>(
    "EXEC ProcName @param1, @param2", 
    new SqlParameter("param1", param1), 
    new SqlParameter("param2", param2));
0 голосов
/ 27 марта 2012

Я не уверен, поможет ли это вам, но вот как я вызываю процесс Oracle, используя EF 4.1 и драйвер DevArt.Это просто возвращает одно значение, но вы можете адаптировать его для возврата нескольких строк.У меня есть package.proc с именем P_SID.SID_PGet:

PROCEDURE SID_PGet(io_SID OUT varchar2) is
Begin
   io_SID:=GetSID;
End;

Ниже приведен способ его вызова и получения значения SID:

var parameter = new Devart.Data.Oracle.OracleParameter("io_SID", Devart.Data.Oracle.OracleDbType.VarChar, ParameterDirection.Output);
this.Database.ExecuteSqlCommand("BEGIN P_SID.SID_PGet(:io_SID); END;", parameter);
var sid = parameter.Value as string;

return sid;
0 голосов
/ 03 июля 2011

Я не знаю, какую часть «Code First не поддерживает хранимые процедуры» люди не понимают, но это продолжается, и не должно. Вы можете запутаться в этом (вроде), но на самом деле, если вам нужно выполнить хранимые процедуры, вам не следует сначала использовать код на этом этапе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...