Sto usando l'ultimo EF Core 1.1.1
con .NET Core
. Ora voglio implementare del codice generico all'interno del metodo OnModelCreating
nella mia classe ApplicationDbContext
per chiamare qualsiasi SP esistente da db. Nota, ho sia le mie classi modello che le tabelle del database. Quindi non voglio nessuna migrazione né voglio specificare i parametri SP per un particolare SP all'interno di OnModelCreating
. Dovrebbe essere un'implementazione generica che può essere utilizzata per qualsiasi SP. Il mio unico scopo è chiamare qualsiasi SP esistente da databse.
Entità:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Classe ApplicationDbContext:
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext ()
{
Database.Connection.ConnectionString = "Data Source=.\\SQLExpress;Initial
Catalog=CallingExistingSPFromEFCore;Integrated Security=True";
}
public DbSet<Product> Products { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Product>().MapToStoredProcedures
(
//What should be the implementation here ?
)
base.OnModelCreating(modelBuilder);
}
}
OK ragazzi, ho scoperto che nel caso in cui la migrazione non fosse necessaria, possiamo saltare il metodo OnModelCreating
e procedere con il metodo OnConfiguring
.
public class ApplicationDbContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=servername;Database=dbname;Trusted_Connection=True;");
}
}
Non credo che EF Core 1.1 supporti ancora le stored procedure. Controlla il confronto tra EF 6.X e EF Core 1.1 qui: