# DataLayers

Generic Data Access Layer (DAL) abstraction with mutex-protected session/transaction patterns and singleton DAL pooling.

## Key Files

- **`IAcDalBase.cs`** — Base interface: Name, Context access, Mutex lock, DbContext lifecycle.
- **`AcDalBase.cs`** — Abstract implementation: Session/SessionAsync (reads), Transaction/TransactionAsync (writes), thread-safe Mutex, auto DbContext creation, model DTO conversion.
- **`PooledDal.cs`** — Singleton DAL pool: concurrent dictionary by SessionId/PlayerId, GetDalById, CreateDal, Remove.

## Subfolders

| Folder | Purpose |
|---|---|
| [`Users/`](Users/README.md) | User-specific DAL with authentication and CRUD |
