L'operatore LIKE è utilizzato all'interno di SQL nella clausola WHERE per ricercare elementi la cui colonna ha un valore corrispondente al pattern specificato.
Con Entity Framework Core, questa funzione era richiamabile solamente tramite l'utilizzo dell'extension method FromSql che non aveva il bisogno di tradurre la query e la eseguiva in modo diretto sul database. Altrimenti, qualora avessimo voluto mantenere la sintassi di Linq, saremmo stati costretti ad utilizzare il metodo string.Contains, che però non è così stringente e non applica gli stessi pattern.
Entity Framework Core 2 introduce la funzione specifica Like che sopperisce a tutti i problemi elencati nel paragrafo precedente e può essere utilizzata con semplicità:
var filtered = ctx.People.Where(p => EF.Functions.Like(p.FirstName, "Ma%"));
In questo caso specifico, all'interno della variabile filtered ci saranno tutte le persone il cui nome inizia con "Ma" ma non ha una lunghezza specifica. Questa query viene tradotta in SQL:
SELECT .[Id], .[FirstName] FROM [People] WHERE .[FirstName] LIKE N'Ma%';
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ricevere notifiche sui test con Azure Load Testing
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Usare le navigation property in QuickGrid di Blazor
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Ordinare randomicamente una lista in C#
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Referenziare un @layer più alto in CSS
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Assegnare un valore di default a un parametro di una lambda in C#
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Generare velocemente pagine CRUD in Blazor con QuickGrid