update a single column in Entity Framework Core (EF Core)

Update a single column in Entity Framework Core (EF Core):

To update a single column in Entity Framework Core (EF Core), you can perform the update operation without loading the entire entity from the database. This is useful for optimizing performance when you only need to modify one specific property (column) of an entity.

Steps to Update a Single Column:

  1. Retrieve the Entity (or part of it): You can retrieve the entity, then update only the specific column you want to change.
  2. Set the Property Value: Set the value for the specific property/column you want to update.
  3. Save Changes: Save the changes to the database

 

Approach1:

public async Task UpdateProductPriceAsync(int productId, decimal newPrice)

{

    var product = await _dbContext.Products.FindAsync(productId);    

    if (product != null)

    {

        product.Price = newPrice;

        await _dbContext.SaveChangesAsync();

    }

}

 

 

Approach2:

update a single column without retrieving the entire entity by using Update() and marking only the specific property as modified.

 

public async Task UpdateProductPriceAsync(int productId, decimal newPrice)

{

    var product = new Product { Id = productId };

    _dbContext.Attach(product);

    product.Price = newPrice;

    _dbContext.Entry(product).Property(p => p.Price).IsModified = true;

    await _dbContext.SaveChangesAsync();

}

 

 

 

Approach3:

Using ExecuteSqlRaw for Direct SQL Update (Advanced)

public async Task UpdateProductPriceAsync(int productId, decimal newPrice)

{

    var sql = "UPDATE Products SET Price = @p0 WHERE Id = @p1";

    await _dbContext.Database.ExecuteSqlRawAsync(sql, newPrice, productId);

}

 

Summary:

  • Retrieve and Update: Can load the entity and update the specific column using the entity's property.
  • Attach and Update: If you don't want to load the full entity, attach it and mark the column as modified.
  • Direct SQL: For performance, you can directly use SQL queries via ExecuteSqlRaw if you only want to update a single column.

This approach helps to optimize your EF Core updates, especially when working with large tables or when updating only a few properties of an entity.

 


Comments

Popular posts from this blog

Multiline to singleline IN C# - CODING

EF Core interview questions for beginners

EF Core interview questions for experienced