Filtrare i risultati di una query in base ad una lista di dati predefiniti con Entity Framework
di Stefano Mostarda, in LINQ, Entity Framework, il 13 maggio 2009 alle 08:00
Commenti
mi piace (0)
non mi piace (0) 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.





