Щоб оновити сутність за допомогою Entity Framework Core, це логічний процес:
- Створити екземпляр для
DbContext
класу
- Отримати сутність за ключем
- Внесіть зміни у властивості сутності
- Зберегти зміни
Update()
метод у DbContext
:
Починає відстежувати дану сутність у зміненому стані таким чином, що вона буде оновлюватися в базі даних при SaveChanges()
виклику.
Метод оновлення не зберігає зміни в базі даних; натомість він встановлює стани для записів у екземплярі DbContext.
Отже, ми можемо викликати Update()
метод раніше, щоб зберегти зміни в базі даних.
Я прийму деякі визначення об’єктів, щоб відповісти на ваше запитання:
Назва бази даних - Store
Назва таблиці - Product
Визначення класу товару:
public class Product
{
public int? ProductID { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public decimal? UnitPrice { get; set; }
}
Визначення класу 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 =>
{
entity.HasKey(p => p.ProductID);
});
base.OnModelCreating(modelBuilder);
}
}
Логіка для оновлення сутності:
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();
}
}