#120 - Filtrare i risultati di una query in base ad una lista di dati predefiniti con Entity Framework
di Stefano Mostarda, in LINQ, Entity Framework, 13 maggio 2009
In SQL la clausola IN può essere utilizzata in due modalità. La prima prevede che i dati della query padre siano filtrati in base ai risultati di una sub query.
select * from table where id in (select id from table2)
La seconda modalità prevede che la query sia filtrata in base ad una lista di valori predefinita.
select * from table where id in (1,2,3,4)
Scrivere la prima tipologia di query in Entity Framework è molto semplice in quanto basta innestare le query, mentre la seconda presenta qualche problema in più. Simulare la clausola IN di SQL con LINQ to Entities non è possibile se non scrivendo un operatore custom. La via più semplice quindi è ricorrere ad Entity SQL.
SELECT VALUE c FROM NWEntities.Customers AS c
WHERE c.CustomerID IN { 'ALFKI', 'ALLGT', 'FRETD' }Costruendo a mano lo statement, risulta molto semplice creare la stringa da una lista di id dati in input al metodo.
Approfondimenti
-
#166 - Recuperare le funzioni definite nel conceptual schema dell'EDM in Entity Framework
-
#998 - Effettuare chiamate ad un controller tramite AJAX in ASP.NET MVC
-
.NET Framework 4.0 e VS 2010 in Release Candidate
-
#160 - Forzare il caricamento dei metadati con Entity Framework
-
#128 - Caricare parzialmente un oggetto di dominio con Entity Framework
-
#136 - Utilizzare LINQ per raggruppare gli application pool di IIS in base al tipo di pipeline
-
#146 - Simulare la clausola SQL Exists con il metodo Any in LINQ to Entities
-
#1009 - Evitare attacchi basati su tampering dei dati in ASP.NET MVC
-
Template per generare classi POCO con Entity Framework 4.0
-
Entity Framework e l'estendibilità del designer
-
#170 - Caricare un grafo complesso di oggetti in una sola query con Entity Framework
-
.NET Framework 4.0 Beta 1: Entity Framework

















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.