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()
.