Qual è l'approccio migliore per aggiornare i dati di una tabella di database nel core del work frame entità?
Quali sono le funzionalità migliorate che possiamo utilizzare su EF6?
Per aggiornare un'entità con Entity Framework Core, questo è il processo logico:
DbContext
Metodo Update()
in DbContext
:
Inizia a tracciare l'entità specificata nello stato Modificato in modo tale che venga aggiornata nel database quando viene chiamato
SaveChanges()
.
Il metodo di aggiornamento non salva le modifiche nel database; invece imposta gli stati per le voci nell'istanza DbContext.
Quindi, possiamo invocare il metodo Update()
prima di salvare le modifiche nel database.
Presumo alcune definizioni di oggetti per rispondere alla tua domanda:
Il nome del database è Store
Il nome della tabella è Prodotto
Definizione della classe di prodotto:
public class Product
{
public int? ProductID { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public decimal? UnitPrice { get; set; }
}
Definizione della classe DbContext:
public class StoreDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Your Connection String");
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>(entity =>
{
// Set key for entity
entity.HasKey(p => p.ProductID);
});
base.OnModelCreating(modelBuilder);
}
}
Logica per aggiornare l'entità:
using (var context = new StoreDbContext())
{
// Retrieve entity by id
// Answer for question #1
var entity = context.Products.FirstOrDefault(item => item.ProductID == id);
// Validate entity is not null
if (entity != null)
{
// Answer for question #2
// Make changes on entity
entity.UnitPrice = 49.99m;
entity.Description = "Collector's edition";
// Update entity in DbSet
context.Products.Update(entity);
// Save changes in database
context.SaveChanges();
}
}
Per favore fatemi sapere se questo è utile