Comprehensive documentation for the Ploch.Data libraries -- a set of .NET packages for building data access layers using standardised entity models, the Generic Repository and Unit of Work patterns, and Entity Framework Core.
| Document | Description |
|---|---|
| Getting Started | Quick start guides for common use cases |
| Data Model | Complete guide to Ploch.Data.Model interfaces and common types |
| Generic Repository | Repository and Unit of Work patterns, Specification support |
| Dependency Injection | DI registration, provider switching, lifecycle plugins, connection string configuration |
| Data Project Setup | Step-by-step guide for creating Data and provider projects |
| Integration Testing | Testing with in-memory SQLite, base test classes, and patterns |
| Extending the Libraries | Custom repositories, new providers, and extensibility points |
| Architecture Overview | Package dependencies, high-level design, and layer diagrams |
| Package | Purpose |
|---|---|
Ploch.Data.Model |
Standardised entity interfaces (IHasId, INamed, IHasAuditProperties, etc.) and common base types (Category, Tag, Property) |
Ploch.Data.EFCore |
EF Core utilities: design-time factory base classes, IDbContextConfigurator, data seeding helpers |
Ploch.Data.EFCore.SqLite |
SQLite provider: SqLiteDbContextFactory, SqLiteDbContextConfigurator, DateTimeOffset workaround |
Ploch.Data.EFCore.SqlServer |
SQL Server provider: SqlServerDbContextFactory, SqlServerDbContextConfigurator |
Ploch.Data.GenericRepository |
Provider-agnostic repository and Unit of Work interfaces (IReadRepositoryAsync, IReadWriteRepositoryAsync, IUnitOfWork) |
Ploch.Data.GenericRepository.EFCore |
EF Core implementations of the Generic Repository and Unit of Work, plus DI registration |
Ploch.Data.GenericRepository.EFCore.SqLite |
One-call DI registration for SQLite (DbContext + repositories + lifecycle) |
Ploch.Data.GenericRepository.EFCore.SqlServer |
One-call DI registration for SQL Server (DbContext + repositories + lifecycle) |
Ploch.Data.GenericRepository.EFCore.Specification |
Ardalis.Specification integration for composable, reusable query logic |
Ploch.Data.EFCore.IntegrationTesting |
DataIntegrationTest<TDbContext> base class for EF Core integration tests |
Ploch.Data.GenericRepository.EFCore.IntegrationTesting |
GenericRepositoryDataIntegrationTest<TDbContext> base class with repository/UoW helpers |
A fully working Sample Application demonstrates all major features including entity modelling, repository usage, Unit of Work, pagination, eager loading, and integration testing.
- API Documentation (GitHub Pages)
- Repository