Entity Framework Core Tutorial server SQL
introduzione
Microsoft.EntityFrameworkCore.SqlServer
provider di database Microsoft.EntityFrameworkCore.SqlServer
consente l'utilizzo di Entity Framework Core con Microsoft SQL Server (incluso SQL Azure). Il provider viene gestito come parte del progetto Entity Framework Core .
Come utilizzare il provider SQL Server
Per utilizzare il provider del database SQL Server, il primo passaggio consiste nell'installare il pacchetto NuGet di Microsoft.EntityFrameworkCore.SqlServer . Consideriamo un modello semplice che contiene tre entità.
public class Customer { public int CustomerId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public virtual List<Invoice> Invoices { get; set; } } public class Invoice { public int Id { get; set; } public DateTime Date { get; set; } public int CustomerId { get; set; } [ForeignKey("CustomerId")] public virtual Customer Customer { get; set; } public virtual List<InvoiceItem> Items { get; set; } } public class InvoiceItem { public int InvoiceItemId { get; set; } public int InvoiceId { get; set; } public string Code { get; set; } [ForeignKey("InvoiceId")] public virtual Invoice Invoice { get; set; } }
Il passaggio successivo consiste nel creare una classe DbContext
personalizzata.
public class MyContext : DbContext { public DbSet<Customer> Customers { get; set; } public DbSet<Invoice> Invoices { get; set; } public DbSet<InvoiceItem> InvoiceItems { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder .UseSqlServer(@"Data Source=(localdb)\ProjectsV13;Initial Catalog=CustomerDB;"); } }
In EF Core, il DbContext ha un metodo virtuale chiamato onConfiguring che verrà chiamato internamente da EF Core, e passerà anche in un'istanza di OptionsBuilder, e puoi usare quella optionsBuilder per configurare le opzioni per DbContext.
Il optionsBuilder ha il metodo UseSqlServer; si aspetta una stringa di connessione come parametro. Una volta ottenuto un modello, è possibile utilizzare le migrazioni per creare un database.
Eseguire il comando seguente nella Console di Gestione pacchetti.
PM> Add-Migration Initial
Questo comando impalcatura una migrazione per creare il set iniziale di tabelle per il modello. Quando viene eseguito correttamente, quindi eseguire il seguente comando.
PM> Update-Database
Applicherà la nuova migrazione al database. Ora è possibile utilizzare il database SQL Server per inserire, eliminare e aggiornare i dati.
using (var context = new MyContext()) { var customer = new Customer { FirstName = "Elizabeth", LastName = "Lincoln", Address = "23 Tsawassen Blvd." }; context.Customers.Add(customer); context.SaveChanges(); }
Tabelle ottimizzate per la memoria
Le tabelle ottimizzate per la memoria sono una funzionalità di SQL Server in cui l'intera tabella risiede in memoria.
- Una seconda copia dei dati della tabella viene mantenuta su disco, ma solo per scopi di durabilità.
- I dati nelle tabelle ottimizzate per la memoria vengono letti dal disco solo durante il ripristino del database.
È possibile specificare che la tabella associata a un'entità è ottimizzata per la memoria.
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Customer>() .ForSqlServerIsMemoryOptimized(); }