ef-core — скилл для GitHub Copilot: что делает и как установить
Скилл подсказывает практики для Entity Framework Core и помогает находить проблемы в коде. Подойдёт для ревью моделей, запросов, миграций и тестов.
npx skills add github/awesome-copilot --skill ef-core -a claude-codeЧто делает ef-core
ef-core помогает проверять код Entity Framework Core по практикам проектирования DbContext и сущностей. Он подсказывает, как настраивать связи, ключи и ограничения, разделять конфигурации через IEntityTypeConfiguration, выбирать время жизни DbContext и применять DbContextFactory в консольных приложениях или тестах.
Скилл разбирает запросы и производительность: AsNoTracking() для чтения, пагинацию через Skip() и Take(), Include(), проекцию Select и compiled queries. Отдельно рассматривает N+1, IQueryable, LINQ, транзакции, контроль конкурентности, параметризованные запросы и доступ к данным. В части миграций он советует делать небольшие изменения, проверять SQL перед production и тестировать миграции в изолированной среде.
Для тестов используются in-memory provider, SQLite-контексты и моки DbContext и DbSet. Ставьте его, если нужен предметный ревью EF Core. Для проекта без Entity Framework Core он лишний.
Какие задачи решает
- проверить структуру DbContext и конфигураций сущностей
- найти N+1 и лишнюю загрузку данных
- подобрать способ чтения и проекции запроса
- разобрать миграции перед применением в production
- проверить тестовый контекст EF Core
Примеры запросов агенту
- Проверь этот DbContext и предложи улучшения по ef-core.
- Найди в запросах EF Core проблемы с N+1, Include() и AsNoTracking().
- Проверь миграцию и связанные тесты SQLite по практикам ef-core.
Как установить ef-core
1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill ef-core -a claude-code2Вручную: положить файлы
~/.claude/skills/ef-core/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/ef-core/
Вручную: положить файлы
.agents/skills/ef-core/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/ef-core/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill ef-core2GitHub CLI
gh skill install github/awesome-copilot ef-core3Вручную: положить файлы
.github/skills/ef-core/SKILL.mdКомандой платформы
gemini skills install https://github.com/github/awesome-copilot --path skills/ef-coreВручную: положить файлы
.devin/skills/ef-core/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о ef-core
Как установить ef-core в GitHub Copilot?
Выполните npx skills add github/awesome-copilot --skill ef-core, затем скилл будет доступен из .github/skills/ef-core/SKILL.md. Также можно использовать gh skill install github/awesome-copilot ef-core.
Что делает ef-core?
Скилл помогает ревьюить код Entity Framework Core: DbContext, сущности, LINQ-запросы, миграции, сохранение изменений, безопасность и тесты.
Какие подходы к тестированию EF Core он учитывает?
Он рассматривает in-memory database provider для unit-тестов, отдельные SQLite-контексты для integration-тестов, моки DbContext и DbSet, а также проверку миграций в изолированной среде.
Исходный текст
SKILL.md · MIT
--- name: ef-core description: 'Get best practices for Entity Framework Core' --- # 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.
© github · MIT · github/awesome-copilot