2011-11-22 17 views
6

he encontrado algunos artículos como éste: http://devtoolshed.com/using-stored-procedures-entity-framework-scalar-return-valuesvalor escalar del procedimiento almacenado a través de Entity Framework

Sin embargo, cuando tomo el paso para crear una importación de función para un escalar int32, esto es lo que se genera:

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

soy capaz de llamar al procedimiento con esto, pero no soy capaz de llegar al escalar subyacente:

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

En los ejemplos de código que he visto, debería obtener context.MyProcedure().SingleOrDefault().

Respuesta

12

Prueba esto:

int? result = myEntities.MyProcedure(orderId).FirstOrDefault(); 
Cuestiones relacionadas