Как мне вернуть int из хранимой процедуры в Entity Framework 4.1?

Я использую Entity Framework 4.1 и иногда необходимо вызывать хранимые процедуры. Некоторые из них возвращают целые числа как возвращаемые значения. Например,

CREATE PROCEDURE ...
...
INSERT INTO ...
SELECT @@Identity

( Обновление : удалено возвращаемое значение, не имеет отношения. Мы возвращаем идентификатор)

У меня есть следующее код в моем классе репозитория:

var orderNo = context.Database.SqlQuery<int>("EXEC myProc").Single();

Это не срабатывает с сообщением об ошибке Указанное приведение материализованного типа 'System.Decimal' к типу 'System.Int32' недопустимо.

Если я изменю код выше в

var orderNo = context.Database.SqlQuery<decimal>("EXEC myProc").Single();

все работает.

Теперь я думаю, что я смогу вернуть int. Как правильно это сделать?

11
задан Jonas Lincoln 15 November 2011 в 15:41
поделиться