Scalar Value from stored procedure via Entity Framework

11,405

Try this:

int? result = myEntities.MyProcedure(orderId).FirstOrDefault();
Share:
11,405

Related videos on Youtube

Roger
Author by

Roger

Updated on June 04, 2022

Comments

  • Roger
    Roger almost 2 years

    I have found a few articles like this one: http://devtoolshed.com/using-stored-procedures-entity-framework-scalar-return-values

    Yet when I take the step to create a function import for a int32 scalar, this is what gets generated:

     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);
        }
    

    I am able to call the procedure with this, but am not able to get to the underlying scalar:

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

    In the code examples I have seen, I should get context.MyProcedure().SingleOrDefault().