此注册表固定版本所收录的最新上游作者日期。

ef-core

已同步 v1.1.0 许可证: MIT 来源: github/awesome-copilot/skills/ef-core 提交: 4742f26 收录的最新变更:

Get best practices for Entity Framework Core

摘要

用途
提供 EF Core DbContext 与实体设计,以及查找、数据保存、迁移、安全性和测试的实务指引。
使用时机
在设计或查看 EF Core 数据模型、查找、迁移、变更追踪或数据库测试时使用。
输出结果
提供可采取的改进建议,涵盖模型设计、查找效率、安全迁移、数据保存、安全性与测试策略。
上游变更(7 条,最新收录 2026-02-19)
caab1f6 Convert all prompts to skills and update plugin manifests 添加 EF Core 最佳实务技能,涵盖 DbContext 与实体设计、性能、迁移、查找、变更追踪与保存、安全性及测试。
2f9c96d Fix deprecated 'mode' attribute in prompt files by renaming to 'agent' (#441) 将提示档前置数据中的 `mode` 字段名称改为 `agent`。
2b45ca4 feat: update deprecated tool names to namespaced versions (#365) 将提示档的 tools 清单项目从 `codebase` 改为 `search/codebase`。
69cd4fa update `editFiles` to `edit/editFiles` (#319) 将提示档的 tools 清单项目从 `editFiles` 改为 `edit/editFiles`。
6fb794b Update development instructions and guidelines (#29) 将提示档前置数据中的 `mode`、`tools` 和 `description` 值由双引号改为单引号。
9872a77 Improving the tools for prompts 更新 tools 清单,保留 `codebase`,并以 `changes`、`editFiles`、`problems` 和 `runCommands` 取代 `terminalCommand`。
4c8ad05 Initial setup of repo with prompts and instructions 添加 EF Core 最佳实务提示档,涵盖 DbContext 与实体设计、性能、迁移、查找、变更追踪与保存、安全性及测试。
npx skills add "lettucebo/Skills#v2.2.0@ef-core" --full-depth

⚠ v2.2.0 发布后即可使用

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.

历史

v1.0.0 bootstrap
v1.1.0 baseline-verified 4742f26
v1.1.0 license-refresh 4742f26