Ammetto che mi emoziono per poco, ma...
Da quando ho cominciato ad usarlo l'ho sempre pensato; ogni giorno che passa è sempre una nuova conferma; sentire qualcuno di un certo spessore che lo dice in pubblico ti convince sempre di più.
Ed oggi, ancora una volta, mi sono emozionato della velocità e l'eleganza con cui LINQ ti risolve i problemi di query, tanto da indurmi a scrivere questo post.
Il mio problema era semplice: dato un array contenente degli oggetti dovevo ottenerne un sottoinsieme in base ad una condizione; la condizione consisteva nel verificare se una proprietà degli oggetti era contenuta in un set di dati ottenuto da una query su db.
Come prima ipotesi si potrebbe pensare di ciclare tutti gli elementi, per ognuno di essi eseguire la query e se la condizione è verificata aggiungere il riferimento all'elemento in una collection; questo per dimostrare come il problema sia comunque di facile soluzione.
Ma quando ti accorgi che il problema, grazie a LINQ (e si, anche ad Entity Framework), si può risolvere in questo modo:
(from m in materiePrime
where this.dataContext.PartiteLotto.Any(p => p.CodicePartita == m.CodicePartita)
select m)
cioè una query che ti restituisce esattamente il risultato di cui avevi bisogno...
Beh, lo ripeto, mi emoziono con poco, ma questo mi basta per confermare ulteriormente il mio amore verso LINQ.
Matteo