Filtrare i risultati di una query in base ad una lista di dati predefiniti con Entity Framework

di Stefano Mostarda, in LINQ, Entity Framework,

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.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi