Не удается найти функцию для хранимой процедуры в Entity Framework - PullRequest
1 голос
/ 31 августа 2009

На основе базы данных myDB я генерирую edmx для всей таблицы и компилирую проект. Затем я создаю хранимую процедуру myProc в myDB. Затем я обновляю модель с помощью «Обновить модель из базы данных» в узле «Хранимая процедура» и добавляю myProc. Это хорошо. Затем «Создать импорт функции» на myProc. Это хорошо. Потом я скомпилировал проект, все нормально.

Тип возврата для этой функции импорта - скаляры (строка), потому что myProc возвращает строку.

Тогда я хочу использовать эту функцию для этой хранимой процедуры, но я могу узнать эту функцию. Как найти соответствующую функцию и вызвать ее в коде?

1 Ответ

1 голос
/ 01 сентября 2009

В EF 3.5 только функции, возвращающие сущности, отображаются в ObjectServices.

т.е. импорт тянет функцию в концептуальную модель, но НЕ в генерацию кода.

Мы решили эту проблему в 4.0.

В то же время вы можете вызывать функцию, используя eSQL.

т.е. как то так (псевдокод):

EntityConnection connection = ctx.Connection as EntityConnection;
//Open the connection if necessary
connection.Open()
//Create the command
EntityCommand command = new EntityCommand();
command.CommandText = "Function(@p1,@p2");
command.Parameters.Add(...);
command.Parameters.Add(...);
command.Connection = connection;
string s = command.ExecuteScalar().ToString();

Надеюсь, это поможет

Alex

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