Entity Framework Core e data access in .NET per query sane e sistemi che non marciscono

Domande frequenti

Entity Framework Core e la scelta giusta per applicazioni CRUD standard, quando vuoi migrazioni gestite, change tracking automatico e query costruite con LINQ. Dapper e preferibile per query complesse, report su grandi volumi di dati, stored procedure esistenti o quando il controllo sul SQL generato e critico per le performance. In molte applicazioni enterprise si usano entrambi: EF Core per le operazioni standard, Dapper per le query analitiche.

Le migrations sono snapshot incrementali dello schema del database generati da EF Core a partire dal modello C#. Ogni migration descrive le differenze rispetto allo stato precedente e contiene il codice per applicare e annullare la modifica. Permettono di evolvere lo schema in modo versionato e reversibile, applicabile via CLI (dotnet ef database update) o automaticamente all'avvio dell'applicazione.

Le ottimizzazioni piu impattanti sono: usare AsNoTracking per le query di sola lettura, proiettare solo le colonne necessarie con Select invece di caricare l'intera entita, evitare il problema N+1 con Include o query split, e usare query raw SQL via FromSqlRaw per i casi complessi. Application Insights o EF Core logging aiutano a individuare le query lente in produzione.

SQL Server e la scelta naturale per applicazioni enterprise che girano su Azure o Windows con integrazione Microsoft completa. PostgreSQL e preferito in contesti open source, Linux o cloud multi-vendor per le sue performance e la ricchezza di tipi. Cosmos DB e adatto a dati non strutturati, scale globale e throughput elevato. La scelta dipende dal tipo di dati, dal cloud provider e dai requisiti di scalabilita.

Versione 0.1.0Note di rilascio