Entity Modeling Relationships
Configure Many-to-Many With Fluent API
Map an Owned Address Type
One-to-One User and UserProfile Mapping
Composite Primary Key With Fluent API
Many-to-Many With Join Entity
TPH Inheritance With Discriminator Column
Map Location Value Object With ComplexProperty
Table-per-Type Inheritance Mapping
Configure Cascade Delete Behavior
Query Performance Optimization
Read-Only Endpoint With AsNoTracking
Eliminate N+1 With Include or Projection
Generic IQueryable Pagination Extension
Fix Cartesian Explosion With AsSplitQuery
Eliminate Cartesian Explosion With Projection
Transactions Concurrency
Wrap Multiple SaveChanges in a Transaction
Optimistic Concurrency With RowVersion
Share a Transaction Across Two DbContexts
Interceptors Change Tracking
Auditing SaveChangesInterceptor for IAuditable
Soft-Delete With Interceptor and Query Filter
Slow Query Logging Command Interceptor
Property Mapping Conversion
Map a Property to a JSON Column
Configure Unique and Composite Indexes
JSON Value Converter for a Column
Auto-Update LastUpdated Shadow Property
Custom ValueConverters for Enum and List
Shadow Property Ordering With EF.Property
Computed Column and Default Value Mapping
Dynamic Raw Sql Queries
Dynamic IQueryable Search Composition
Dynamic LINQ Filter From Expression Trees
Raw SQL With CTE Mapped To Entity
Migrations Seeding
Idempotent Master Data Seeding
Querying Loading
Deep Eager Loading With Include/ThenInclude
Filtered Include for In-Stock Products
Projected Query Into a DTO
Explicit Loading With Entry()
GroupBy Aggregation Translated to SQL
Context Lifecycle Advanced Patterns
DbContext Pooling With Stateful Services
Transactional Outbox With EF Core
Fix Scoped DbContext in Background Service
Patterns Filters Bulk Operations
Soft Delete With Global Query Filter
Generic Repository Over DbSet
Bulk Price Increase With ExecuteUpdateAsync
Map a Keyless Entity to a View
Unit of Work With Single CommitAsync
Generic Repository With Eager Loading
Bulk Delete With ExecuteDeleteAsync
Split Fluent Config Into Configuration Classes
Enable Lazy Loading Proxies
Multi-Tenant Isolation With Global Query Filters