Я создаю новое приложение, которое должно взаимодействовать с устаревшим кодом: (.
Хранимая процедура, которую я пытаюсь вызвать, использует RETURN для своего результата. Мои попытки выполнить и получить возвращаемое значениеприводят к исключению:
InvalidOperationException: при выполнении команды параметры должны быть исключительно параметрами или значениями базы данных.
Изменение сохраненного процесса для возврата значения другим способомне требуется, поскольку для этого требуется либо обновить устаревшее приложение, либо сохранить почти дублированный хранимый процесс.
Устаревший хранимый протокол proc:
DECLARE @MyID INT
INSERT INTO MyTable ...
SELECT @MyID = IDENTITY()
RETURN @MyID
Работа My Entity Framework / DbContext, что приводитуказанное выше InvalidOperationException.
SqlParameter parm = new SqlParameter() {
ParameterName = "@MyID",
Direction = System.Data.ParameterDirection.ReturnValue
};
DbContext.Database.ExecuteSqlCommand("EXEC dbo.MyProc", parm);
Поиск любых решений, для которых не требуется изменение сохраненного процесса.