Estoy intentando devolver un valor utilizando el nuevo comando FromSql
en Entity Framework 7. Mi procedimiento almacenado devuelve un valor de 0 si todo va bien y 1 si ocurre un error.
Usando FromSql
con DbSet
podemos, por ejemplo, hacer
_dbContext.ExampleEntity.FromSql('someSproc', 'param')
¿Cómo obtendrá el valor de retorno escalar de 0 o 1 de esto?
Parece que el soporte de procedimientos almacenados todavía está en el backlog .
Aquí hay un ejemplo de método de extensión al que puede llamar usando _dbContext.ExecuteStoredProcedure("someSproc", "param");
.
public static class DbContextExtension
{
public static int ExecuteStoredProcedure(this DbContext context, string name, string parameter)
{
var command = context.Database.GetDbConnection().CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = name;
var param = command.CreateParameter();
param.ParameterName = "@p0";
param.Value = parameter;
command.Parameters.Add(param);
return (int)command.ExecuteScalar();
}
}