ef-core-patterns
Installation
SKILL.md
Entity Framework Core Best Practices
Use when configuring entities, optimizing queries, or implementing multi-tenant data access with EF Core.
When to use
- Configuring entity mappings, indexes, relationships, and value objects
- Optimizing read queries (AsNoTracking, projections) or preventing N+1 problems
- Adding row version concurrency tokens or handling conflicts
- Applying global tenant filters or implementing repositories
Core principles
- Prefer Fluent API over data annotations; keep entities clean with private setters
- Use AsNoTracking for reads; Include/split queries to avoid N+1; project to DTOs when possible
- Index tenant columns and frequent filter combinations; create unique composites for business rules
- Add RowVersion for optimistic concurrency; catch DbUpdateConcurrencyException
- Apply global query filters for multi-tenancy; bypass with IgnoreQueryFilters when needed
- Encapsulate in repositories or inject DbContext directly into services