# 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 |