Dies ist der logische Prozess, um eine Entität mit Entity Framework Core zu aktualisieren:
- Instanz für
DbContext
Klasse erstellen
- Entität per Schlüssel abrufen
- Nehmen Sie Änderungen an den Eigenschaften der Entität vor
- Änderungen speichern
Update()
Methode in DbContext
:
Beginnt mit der Verfolgung der angegebenen Entität im Status "Geändert", sodass sie beim SaveChanges()
Aufruf in der Datenbank aktualisiert wird.
Die Aktualisierungsmethode speichert keine Änderungen in der Datenbank. Stattdessen werden Zustände für Einträge in der DbContext-Instanz festgelegt.
Daher können wir die Update()
Methode vorher aufrufen , um Änderungen in der Datenbank zu speichern.
Ich gehe von einigen Objektdefinitionen aus, um Ihre Frage zu beantworten:
Der Datenbankname lautet Store
Tabellenname ist Produkt
Produktklassendefinition:
public class Product
{
public int? ProductID { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public decimal? UnitPrice { get; set; }
}
DbContext-Klassendefinition:
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 =>
{
entity.HasKey(p => p.ProductID);
});
base.OnModelCreating(modelBuilder);
}
}
Logik zum Aktualisieren der Entität:
using (var context = new StoreDbContext())
{
var entity = context.Products.FirstOrDefault(item => item.ProductID == id);
if (entity != null)
{
entity.UnitPrice = 49.99m;
entity.Description = "Collector's edition";
context.SaveChanges();
}
}