Cómo devolver valores al controller de API web desde un procedimiento almacenado en DBContext

Estoy intentando validar los valores para insertlos en SQL desde la API web 2 y el patrón de repository. La database tiene un procedimiento almacenado para verificar los valores pasados ​​(dependencies de keys externas, etc.). El process almacenado devuelve -1 para cada valor que no es válido o si no es válido como verdadero. Necesito pasar el parámetro que no es válido para mi repository / controller para que pueda devolver un post de respuesta http al usuario final indicando que no es válido. Esto es lo que tengo hasta ahora en mi DBContext. ¿Cómo puedo hacer esto?

public void Api_Event_Prefs_InsertUpdateCheck(int individualID, int eventID) { var p_PrefID = new SqlParameter() { ParameterName = "@PrefID", Value = System.Data.SqlTypes.SqlInt32.Null, Direction = ParameterDirection.InputOutput }; var p_individualID = new SqlParameter() { ParameterName = "@IndividualID", Value = individualID, Direction = ParameterDirection.InputOutput }; var p_eventID = new SqlParameter() { ParameterName = "@eventID", Value = eventID, Direction = ParameterDirection.InputOutput }; var p_IsValid = new SqlParameter() { ParameterName = "@IsValid", Value = System.Data.SqlTypes.SqlBoolean.False, Direction = ParameterDirection.Output }; this.Database.ExecuteSqlCommand("Exec dbo.Api_Event_Prefs_InsertUpdateCheck @PrefID, @IndividualID OUT, @EventID OUT, @IsValid OUT", p_PrefID, p_individualID, p_eventID, p_IsValid); } 

Debe usar Database.SqlQuery , que le permite ejecutar un procedimiento almacenado, o cualquier otra consulta, y get los resultados de la ejecución.

ExecuteSqlCommand solo es útil para ejecutar consultas de las cuales no es necesario devolver los datos (por ejemplo, actualizaciones o sentencias DDL).

    Intereting Posts