Как передать параметры в хранимую процедуру EF? - PullRequest
1 голос
/ 19 декабря 2011

Я хотел бы вызвать хранимую процедуру из кода C #. Вот как я пытался:

var result = db.ExecuteStoreCommand("TaskSchedule", new object[] { new ObjectParameter("treatmentDateFrom", dateTime)}); 

Однако я получаю следующую ошибку:

Нет сопоставления между типом объекта System.Data.Objects.ObjectParameter и родным известного управляемого поставщика. тип.

Не могли бы вы сообщить мне, что я делаю не так?

Я видел много сообщений о получении значений из SP, но я бы хотел передать свои параметры в SP. Я использую EF4.

Заранее спасибо за помощь.

1 Ответ

1 голос
/ 19 декабря 2011

Доступ к хранимой процедуре через EF можно сделать очень простым путем сопоставления вашего SP с ObjectContext.

В конструкторе EDMX вы можете импортировать хранимую процедуру и отобразить результат в новый тип или в существующийтип.После этого SP становится строго типизированной функцией в контексте вашего объекта.

Вот некоторая документация об импорте SP.

Если вы не хотите импортировать ваш SPи используйте ExecuteStoreCommand, вам нужно убедиться, что вы указали параметры в тексте команды и что они имеют тип SqlParameter с правильными именем и значением.

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