Я хранимую процедуру, которая вставляет в таблицу затем выполняет эту линиюEntity Framework и SCOPE_IDENTITY
SET @returnVal = SCOPE_IDENTITY();
и после этого я попытался как:
SELECT @returnVal
и
return @returnVal
Когда я выполняю хранимую процедуру из Microsoft SQL Server Management Studio, я получаю ожидаемый результат с помощью SELECT @returnVal
- выбран столбец идентификатора для вставленных данных.
Однако, когда я добавляю хранимую процедуру в класс ADO.Net Entity Data Model/EntityFramework/.edmx и выполняю хранимую процедуру в своем коде на C#, я получаю возвращаемое значение -1.
Возможно ли получить значение, которое я хочу, новое значение идентификации, вернулось?
Я понимаю, что я могу вручную привязать хранимую процедуру к действию вставки таблицы в моей модели, но это не вариант. Слишком много процедур вставки для выполнения этой ручной работы каждый раз, когда я восстанавливаю класс (ы) модели.
Возможный дубликат [Получение SCOPE \ _IDENTITY из SQL Server on Insert] (http://stackoverflow.com/questions/4918574/getting-scope-identity-from-sql-server-on-insert) – Grax
Вы используете ExecuteNonQuery, когда вы должны использовать ExecuteScalar? – Grax
и исполнительный код?NonQuery по любой причине –