SqlRepository (Entity Framework Core)
TheBaseRepository<TEntity> in Core.Infraestructure.Repositories.Sql provides a SQL-based repository implementation using Entity Framework Core.
Class Definition
Core.Infraestructure.Repositories.Sql/BaseRepository.cs
Key Methods
Add Operations
Query Operations
Update & Delete Operations
DbContext Configuration
Create a custom DbContext inheriting fromMicrosoft.EntityFrameworkCore.DbContext:
Infrastructure/Repositories/Sql/StoreDbContext.cs
Creating a Concrete Repository
Infrastructure/Repositories/Sql/DummyEntityRepository.cs
MongoDbRepository
TheBaseRepository<TEntity> in Core.Infraestructure.Repositories.MongoDb provides a MongoDB-based repository implementation.
Class Definition
Core.Infraestructure.Repositories.MongoDb/BaseRepository.cs
Key Methods
Add Operations
Id and _id properties).
Query Operations
Update & Delete Operations
DbContext Configuration
Create a custom DbContext inheriting fromCore.Infraestructure.Repositories.MongoDb.DbContext:
Infrastructure/Repositories/Mongo/StoreDbContext.cs
Creating a Concrete Repository
Infrastructure/Repositories/Mongo/DummyEntityRepository.cs
Repository Registration
Repositories are registered in the DI container based on the configured database type:Infrastructure/Factories/DatabaseFactory.cs
SQL Repository Registration
MongoDB Repository Registration
Configuration
Set the database type inappsettings.json:
Usage Example
Key Features
- Database Abstraction: Switch between SQL and MongoDB without changing application code
- Async Support: All operations have async variants
- Type Safety: Strongly-typed repository pattern
- Automatic Migrations: SQL repositories support EF Core migrations
- Convention-based: MongoDB repositories support naming conventions