EF Core: DbContext & Models
Learn how to define entity models and a DbContext to represent your database in C#.
Entity Classes
An entity is a plain C# class that EF Core maps to a database table. By convention, a property named `Id` (or `{ClassName}Id`) becomes the primary key.
public class TaskItem{ public int Id { get; set; } public string Title { get; set; } = ""; public bool IsComplete { get; set; }}DbContext
A `DbContext` represents a session with the database — it exposes `DbSet<T>` properties for each entity type, giving you a queryable, LINQ-friendly view of each table.
public class AppDbContext : DbContext{ public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public DbSet<TaskItem> Tasks { get; set; }}Registering DbContext
Program.cs
builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));Migrations
Migrations let EF Core translate changes in your C# entity classes into the SQL needed to update your actual database schema.
dotnet ef migrations add InitialCreatedotnet ef database updateFAQs
Yes — run `dotnet tool install --global dotnet-ef` once to get the `dotnet ef` command available.
Summary
- Entity classes are plain C# classes mapped to database tables.
- DbContext exposes DbSet<T> properties for querying each table.
- Migrations translate C# model changes into actual database schema updates.