Catalog
github/ef-core

github

ef-core

Get best practices for Entity Framework Core

v1.0Latest
New~660Updated Jun 26, 2026

Entity Framework Core Best Practices

Your goal is to help me follow best practices when working with Entity Framework Core.

Data Context Design

  • Keep DbContext classes focused and cohesive
  • Use constructor injection for configuration options
  • Override OnModelCreating for fluent API configuration
  • Separate entity configurations using IEntityTypeConfiguration
  • Consider using DbContextFactory pattern for console apps or tests

Entity Design

  • Use meaningful primary keys (consider natural vs surrogate keys)
  • Implement proper relationships (one-to-one, one-to-many, many-to-many)
  • Use data annotations or fluent API for constraints and validations
  • Implement appropriate navigational properties
  • Consider using owned entity types for value objects

Performance

  • Use AsNoTracking() for read-only queries
  • Implement pagination for large result sets with Skip() and Take()
  • Use Include() to eager load related entities when needed
  • Consider projection (Select) to retrieve only required fields
  • Use compiled queries for frequently executed queries
  • Avoid N+1 query problems by properly including related data

Migrations

  • Create small, focused migrations
  • Name migrations descriptively
  • Verify migration SQL scripts before applying to production
  • Consider using migration bundles for deployment
  • Add data seeding through migrations when appropriate

Querying

  • Use IQueryable judiciously and understand when queries execute
  • Prefer strongly-typed LINQ queries over raw SQL
  • Use appropriate query operators (Where, OrderBy, GroupBy)
  • Consider database functions for complex operations
  • Implement specifications pattern for reusable queries

Change Tracking & Saving

  • Use appropriate change tracking strategies
  • Batch your SaveChanges() calls
  • Implement concurrency control for multi-user scenarios
  • Consider using transactions for multiple operations
  • Use appropriate DbContext lifetimes (scoped for web apps)

Security

  • Avoid SQL injection by using parameterized queries
  • Implement appropriate data access permissions
  • Be careful with raw SQL queries
  • Consider data encryption for sensitive information
  • Use migrations to manage database user permissions

Testing

  • Use in-memory database provider for unit tests
  • Create separate testing contexts with SQLite for integration tests
  • Mock DbContext and DbSet for pure unit tests
  • Test migrations in isolated environments
  • Consider snapshot testing for model changes

When reviewing my EF Core code, identify issues and suggest improvements that follow these best practices.

Files1
1 files · 1.0 KB

Select a file to preview

Overall Score

82/100

Grade

B

Good

Safety

95

Quality

80

Clarity

82

Completeness

76

Summary

This skill provides comprehensive best practices guidance for Entity Framework Core (EF Core), covering data context design, entity modeling, performance optimization, migrations, querying, change tracking, security, and testing. It acts as a reference guide to help developers write safer, more efficient EF Core code by identifying issues and suggesting improvements aligned with established patterns.

Detected Capabilities

code review and analysisbest practices guidancepattern matching and recommendationssecurity assessmentperformance analysis

Trigger Keywords

Phrases that MCP clients use to match this skill to user intent.

ef core best practicesentity framework reviewoptimize ef core queriesentity model designdatabase context setupef core performancemigration strategyef core security

Use Cases

  • Reviewing EF Core database context designs for cohesion and proper configuration
  • Optimizing EF Core queries to eliminate N+1 problems and improve performance
  • Planning entity models with proper relationships and navigational properties
  • Auditing EF Core security practices to prevent SQL injection and data exposure
  • Designing migration strategies for safe production database updates
  • Setting up testing patterns for EF Core with in-memory and SQLite providers

Quality Notes

  • Well-organized with clear section hierarchy covering all major EF Core domains
  • Provides specific, actionable best practices with concrete examples (e.g., AsNoTracking, Skip/Take, IEntityTypeConfiguration)
  • Security section explicitly addresses SQL injection risks and parameterized query usage
  • Covers both common optimizations and advanced patterns (compiled queries, specifications pattern, DbContextFactory)
  • Testing guidance includes multiple approaches (in-memory, SQLite, mocking) appropriate for different scenarios
  • Guidance on migrations includes production safety considerations (reviewing SQL, bundles, seeding)
  • No destructive operations or unsafe patterns — skill is purely advisory and read-only
  • Practical for both enterprise and small-scale applications
Model: claude-haiku-4-5-20251001Analyzed: Jun 26, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use github/ef-core in your dev environment

Command Palette

Search for a command to run...