Скалярное значение из хранимой процедуры через Entity Framework - PullRequest
7 голосов
/ 22 ноября 2011

Я нашел несколько статей, подобных этой: http://devtoolshed.com/using-stored-procedures-entity-framework-scalar-return-values

Тем не менее, когда я делаю шаг для создания импорта функции для скаляра int32, генерируется следующее:

 public ObjectResult<Nullable<global::System.Int32>> MyStoredProcedure(Nullable<global::System.Int32> orderId)
    {
        ObjectParameter orderIdParameter;
        if (orderId.HasValue)
        {
            orderIdParameter = new ObjectParameter("OrderId", orderId);
        }
        else
        {
            orderIdParameter = new ObjectParameter("OrderId", typeof(global::System.Int32));
        }

        return base.ExecuteFunction<Nullable<global::System.Int32>>("MyStoredProcedure", orderIdParameter);
    }

Я могу вызвать процедуру с этим, но не могу добраться до основного скаляра:

ObjectResult<int?> result = myEntities.MyProcedure(orderId);

В примерах кода, которые я видел, я должен получить context.MyProcedure().SingleOrDefault().

1 Ответ

14 голосов
/ 30 января 2013

Попробуйте это:

int? result = myEntities.MyProcedure(orderId).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...