# AyCode.Database

Entity Framework Core data access layer with generic DAL pattern, session/transaction management, and DAL pooling. Supports multi-tenant user, company, profile, address, and email entities.

## Folder Structure

| Folder | Purpose |
|---|---|
| [`DbContexts/`](DbContexts/README.md) | EF Core DbContext base classes and configurations |
| [`DbSets/`](DbSets/README.md) | Generic DbSet interfaces with extension-based CRUD |
| [`DataLayers/`](DataLayers/README.md) | DAL abstraction with session/transaction and pooling |
| [`ModelBuilders/`](ModelBuilders/README.md) | Fluent API entity relationship configurations |
| [`Extensions/`](Extensions/README.md) | Session, transaction, and DTO conversion helpers |

## Key Files (Root)

- **`PermissionViewSql.cs`** — SQL view definitions for permission management.
- **`AcDbLogItemWriter.cs`** — Writes log items to the database via logger base class.

## Dependencies

| Dependency | Purpose |
|---|---|
| `Microsoft.EntityFrameworkCore.SqlServer` | SQL Server EF Core provider |
| `MessagePack` | Serialization annotations |
| `Newtonsoft.Json` | JSON support |
