Solución:
El soporte para procedimientos almacenados en EF Core 1.0 se resuelve ahora, esto también admite el mapeo de múltiples conjuntos de resultados.
Consulte aquí los detalles de la corrección
Y puedes llamarlo así en c #
var userType = dbContext.Set().FromSql("dbo.SomeSproc @Id = {0}, @Name = {1}", 45, "Ada");
La compatibilidad con procedimientos almacenados aún no está implementada (a partir de 7.0.0-beta3) en EF7. Puede seguir el progreso de esta función utilizando el número 245.
Por ahora, puede hacerlo a la antigua usanza usando ADO.NET.
var connection = (SqlConnection)context.Database.AsSqlServer().Connection.DbConnection;
var command = connection.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "MySproc";
command.Parameters.AddWithValue("@MyParameter", 42);
command.ExecuteNonQuery();
Para ejecutar los procedimientos almacenados, use el método FromSql que ejecuta consultas RAW SQL
p.ej
var products= context.Products
.FromSql("EXECUTE dbo.GetProducts")
.ToList();
Para usar con parámetros
var productCategory= "Electronics";
var product = context.Products
.FromSql("EXECUTE dbo.GetProductByCategory {0}", productCategory)
.ToList();
o
var productCategory= new SqlParameter("productCategory", "Electronics");
var product = context.Product
.FromSql("EXECUTE dbo.GetProductByName @productCategory", productCategory)
.ToList();
Existen ciertas limitaciones para ejecutar consultas SQL RAW o procedimientos almacenados. No puede usarlo para INSERT / UPDATE / DELETE. si desea ejecutar las consultas INSERT, UPDATE, DELETE, use ExecuteSqlCommand
var categoryName = "Electronics";
dataContext.Database
.ExecuteSqlCommand("dbo.InsertCategory @p0", categoryName);