Un DbContext configurato a metà produce, dopo sei mesi, migrazioni che nessuno vuole più toccare
Rendiamo esplicito dal primo giorno come EF Core mappa lo schema comune alle macchine automatiche e non: Fluent API, configurazioni separate, ereditarietà e filtri globali. Il contratto tra il vostro codice e MariaDB torna leggibile.
- Ciclo di vita del DbContext e context pooling. Scoping per richiesta, e perché condividere un'istanza tra thread è un errore che prima o poi corrompe i dati.
- Fluent API al posto delle Data Annotation. Owned type, value object e table splitting, con le classi di dominio pulite.
- Configurazione separata con IEntityTypeConfiguration. Un OnModelCreating di poche righe invece di un metodo da 500 che nessuno osa toccare.
- Ereditarietà TPH, TPT, TPC. Cosa genera davvero ciascuna in SQL, e quale scegliere in base a query e sottotipi.
- Shadow property e backing field. Chiavi esterne, timestamp e stato interno mappati senza sporcare l'interfaccia delle entità.
- Filtri di query globali. Multi-tenancy e soft delete applicati in un punto solo, impossibili da dimenticare.
- Il modello comune alle macchine automatiche e non automatiche mappato correttamente dal primo giorno
- Un DbContext pulito e leggibile, non un metodo da 500 righe
- Migrazioni future che non riservano sorprese