What is EF Core?
Entity Framework Core (EF Core) is a modern, lightweight, cross-platform ORM (Object
Relational Mapper) from Microsoft.
It allows .NET developers to work with databases using .NET objects, without writing most
SQL manually.
EF Core handles:
- Mapping classes → database tables
- LINQ → SQL translation
- Tracking changes
- Saving data (SaveChanges())
Example:
var product = new Product { Name = "Laptop", Price = 1200 };
_context.Products.Add(product);
_context.SaveChanges();
This automatically executes an INSERT statement in the database.
⚙ 2. What are the differences between EF Core and EF
Feature EF 6 EF Core
Platform .NET Framework only Cross-platform (.NET 6/7/8)
Follow :
Architecture Monolithic Modular, lightweight
LINQ Support Mature, stable Constantly improving
Lazy Loading Built-in Requires setup
Migrations Code-based Improved and more flexible
Database
Providers
Limited (SQL Server,
etc.)
Many (PostgreSQL, MySQL, SQLite, Cosmos
DB, etc.)
Performance Slower Much faster, optimized
EF Core is not just EF 6 ported — it was rewritten from scratch for .NET Core.
🧱 3. How do you configure DbContext in ASP.NET
Core?
DbContext represents a session with the database — it’s where you query and save data.
You register it in the dependency injection container inside Program.cs.
Example:
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("Defa
ultConnection")));
AppDbContext class:
public class AppDbContext : DbContext
public AppDbContext(DbContextOptions<AppDbContext> options) :
base(options) { }
public DbSet<Product> Products { get; set; }
Follow :
🧱 4. What are Migrations?
Migrations allow you to evolve your database schema as your models change, without
losing existing data.
Commands:
dotnet ef migrations add InitialCreate
dotnet ef database update
This creates a Migrations folder with code that applies schema changes automatically.
🧩 5. What is the OnModelCreating method used for?
OnModelCreating is where you configure entity behavior and relationships using the
Fluent API.
Example:
protected override void OnModelCreating(ModelBuilder modelBuilder)
modelBuilder.Entity<Product>()
.Property(p => p.Name)
.HasMaxLength(100)
.IsRequired();
modelBuilder.Entity<Order>()
.HasMany(o => o.Items)
.WithOne(i => i.Order)
.HasForeignKey(i => i.OrderId);
Use it for constraints, relationships, indexes, seeding, and more.
Follow :
💤 6. How do you enable Lazy Loading in EF Core?
Lazy loading means related entities are loaded automatically when accessed.
To enable it:
Install the package:
dotnet add package Microsoft.EntityFrameworkCore.Proxies