Il database context è un’interfaccia che rappresenta un’unità di lavoro. Implementa il pattern Unit of Work e permette di eseguire operazioni di lettura e scrittura sul database.
Database Context
interface IDatabaseContext {
readonly session: ClientSession | undefined;
readonly sessionOrNull: ClientSession | null;
runWithTransaction<T>(fn: () => Promise<T>): Promise<T>;
}
session
Il campo session
rappresenta la sessione corrente. Se non è presente nessuna sessione, il campo sarà undefined
.
Questo dovrà sempre essere utilizzato quando facciamo qualsiasi operazione sul database, quindi all’interno della repository.