EF ExecuteStoredCommand с параметром ReturnValue

Я создаю новое приложение, которое должно взаимодействовать с устаревшим кодом :(.

Хранимая процедура, которую я пытаюсь вызвать, использует RETURN для своего результата. Мои попытки выполнить и использовать return значение приводит к исключению:

InvalidOperationException: при выполнении команды параметры должны быть исключительно параметрами или значениями базы данных.

Изменение сохраненной процедуры для возврата значения другим способом нежелательно, так как это требует обновления устаревших app или поддерживая почти дублирующуюся хранимую процедуру.

Синопсис устаревшей хранимой процедуры:

DECLARE @MyID INT
INSERT INTO MyTable ...
SELECT @MyID = IDENTITY()
RETURN @MyID

Моя Entity Framework / DbContext работает, что дает указанное выше исключение InvalidOperationException.

 SqlParameter parm = new SqlParameter() {
    ParameterName = "@MyID",
    Direction = System.Data.ParameterDirection.ReturnValue
 };

 DbContext.Database.ExecuteSqlCommand("EXEC dbo.MyProc", parm);

Поиск любых и всех решений, которые не требуют хранимых proc to b е изменено.

19
задан splattne 31 October 2012 в 10:25
поделиться