Entity Framework Core 10 accompagna .NET 10 come versione a supporto lungo. Ecco le novità che semplificano di più il codice quotidiano.
LeftJoin e RightJoin
Una left join in LINQ richiedeva una combinazione poco leggibile di GroupJoin, SelectMany e DefaultIfEmpty. Ora c'è un operatore dedicato:
var righe = await db.Clienti
.LeftJoin(db.Ordini,
c => c.Id,
o => o.ClienteId,
(c, o) => new { c.Nome, Totale = o == null ? 0 : o.Totale })
.ToListAsync();
Filtri di query con nome
I filtri globali (per esempio "solo righe non eliminate" o "solo il tenant corrente") ora possono essere più di uno per entità e avere un nome, così si può disattivarne uno solo:
modelBuilder.Entity<Documento>()
.HasQueryFilter("NonEliminati", d => !d.Eliminato)
.HasQueryFilter("Tenant", d => d.TenantId == _tenantId);
// cestino: mostra anche gli eliminati, ma sempre solo del tenant corrente
var cestino = await db.Documenti
.IgnoreQueryFilters(["NonEliminati"])
.Where(d => d.Eliminato)
.ToListAsync();
Ricerca vettoriale
Con SQL Server 2025 e Azure SQL, EF Core 10 supporta il tipo vettoriale e la funzione di distanza: si possono salvare gli embedding generati da un modello di IA e cercare i documenti più simili direttamente con LINQ, senza un database separato. È la base per funzioni di ricerca semantica e per i sistemi che arricchiscono le risposte di un modello linguistico con i documenti aziendali.
Altre migliorie
- Supporto al tipo JSON nativo delle versioni recenti di SQL Server.
- Tipi complessi più flessibili, anche facoltativi e mappati su colonne JSON.
ExecuteUpdateAsyncpiù semplice da comporre con logica condizionale.
Commenti (0)
Nessun commento ancora.