Я использую Entity Framework 4.1 и иногда мне нужно вызвать хранимые процедуры. Некоторые из них возвращают int как возвращаемые значения. Например,
CREATE PROCEDURE ...
...
INSERT INTO ...
SELECT @@Identity
( Обновить: удалено возвращаемое значение, не имеет значения. Мы возвращаем идентификатор)
У меня есть следующий код в моем классе репозитория:
var orderNo = context.Database.SqlQuery<int>("EXEC myProc").Single();
Это не удается с сообщением об ошибке The specified cast from a materialized 'System.Decimal' type to the 'System.Int32' type is not valid.
Если я изменил код выше на
var orderNo = context.Database.SqlQuery<decimal>("EXEC myProc").Single();
все работает.
Теперь я думаю, что я должен вернуть int. Каков правильный способ сделать это?