スキル一覧に戻る
michaellperry

ef-core-patterns

by michaellperry

0🍴 0📅 2026年1月23日
GitHubで見るManusで実行

SKILL.md


name: ef-core-patterns description: Entity Framework Core best practices for configuration, queries, concurrency, and multi-tenancy.

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

Resources

Default locations

  • Entity configurations: src/GloboTicket.Infrastructure/Persistence/Configurations
  • DbContext: src/GloboTicket.Infrastructure/Persistence/GloboTicketDbContext.cs
  • Repositories (if used): src/GloboTicket.Infrastructure/Persistence/Repositories
  • Migrations: src/GloboTicket.Infrastructure/Migrations

Validation checklist

  • Entities have private setters and parameterless constructors for EF
  • Configurations use Fluent API with separate IEntityTypeConfiguration classes
  • Tenant columns indexed; composite indexes match query patterns
  • Read-only queries use AsNoTracking and project to DTOs
  • Include/split queries prevent N+1; large collections use AsSplitQuery
  • Concurrency tokens configured where updates are common
  • Global filters applied to ITenantEntity types; IgnoreQueryFilters used sparingly
  • SaveChanges called in repositories or services consistently

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です