Robotico.Repository.MongoDb 0.1.3
Robotico.Repository.MongoDb
IRepository<TEntity, TId>, IAsyncRepository<TEntity, TId>, and IUnitOfWork backed by MongoDB.Driver using IMongoCollection<TEntity> and optional IClientSessionHandle.
Which interface?
| Host / scenario | Prefer |
|---|---|
| ASP.NET Core, workers | IAsyncRepository<,> |
| Legacy synchronous usage | IRepository<,> |
Unit of work profile (IUnitOfWorkCapabilities)
Applies to MongoDbUnitOfWork (session transaction). Without a session, repository writes are immediate per operation.
UnitOfWorkCommitMode |
SessionScopedTransaction |
CommitCoordinatesDomainWrites |
yes when using a session + MongoDbUnitOfWork |
SupportsTransactions |
yes |
Session and transaction
Use the same IClientSessionHandle for MongoDbRepository and MongoDbUnitOfWork so that repository operations and commit participate in one transaction. Start the session with client.StartSession() and session.StartTransaction() before using repositories; pass the session to both the repository constructor and the unit of work. Call CommitAsync to commit the transaction.
License
See repository license file.
No packages depend on Robotico.Repository.MongoDb.
.NET 8.0
- MongoDB.Driver (>= 2.28.0)
- Robotico.Domain (>= 1.0.2)
- Robotico.Repository (>= 1.2.1)
- Robotico.Result (>= 1.0.2)
.NET 10.0
- MongoDB.Driver (>= 2.28.0)
- Robotico.Domain (>= 1.0.2)
- Robotico.Repository (>= 1.2.1)
- Robotico.Result (>= 1.0.2)