What is DbContext and what is its role in Entity Framework Core?

Beginner

Answer

DbContext is the primary class responsible for interacting with the database. It represents a session with the database and acts as a Unit of Work pattern implementation.
Key responsibilities:

  • Database connection management: Manages database connections
  • Change tracking: Tracks changes to entities
  • Query execution: Translates LINQ queries to SQL
  • Transaction management: Handles database transactions
  • Entity lifecycle: Manages entity states (Added, Modified, Deleted, etc.)
public class ApplicationDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }
    public DbSet<Category> Categories { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("connection-string");
    }
}