Pour mettre à jour une entité avec Entity Framework Core, c'est le processus logique:
- Créer une instance pour
DbContext
classe
- Récupérer entité par clé
- Faire des modifications sur les propriétés de l'entité
- Enregistrer les modifications
Update()
méthode de DbContext
:
Commence le suivi de l'entité donnée dans la modification de l'état tel qu'il sera mis à jour dans la base de données lors de l' SaveChanges()
est appelé.
Méthode de mise à jour n'a pas d'enregistrer les modifications dans la base de données; au lieu de cela, il définit les états pour les entrées en instance DbContext.
Donc, Nous pouvons invoquer Update()
méthode avant d'enregistrer les modifications dans la base de données.
Je vais assumer certaines définitions d'objet pour répondre à votre question:
Nom de base de données est en Magasin
Nom de la Table est Produit
Produit définition de la classe:
public class Product
{
public int? ProductID { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public decimal? UnitPrice { get; set; }
}
DbContext définition de la classe:
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);
}
}
La logique de mise à jour de 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();
}
}
S'il vous plaît laissez-moi savoir si cela est utile