Dovrei preoccuparmi del percorso di aggiornamento di LINQ (la lingua della query)
-
03-07-2019 - |
Domanda
Sto iniziando a utilizzare LINQ come un vero linguaggio di query nel codice per migliorare la leggibilità. Fino a poco tempo fa avevo paura di toccare LINQ perché il team LINQ to SQL si spostava sotto il team Entity Framework (cercando di ignorare quella conversazione qui) - LINQ il linguaggio delle query sarà una scommessa sicura andando avanti (tanto quanto qualsiasi cosa in questo veloce industria in movimento)?
Soluzione
Vale la pena distinguere tra " LINQ " e " un particolare provider LINQ " ;. Penso che sia sicuro affermare che LINQ stesso è qui per rimanere - ed è fenomenale utile per l'elaborazione della raccolta in-process tramite LINQ to Objects.
Per quanto riguarda quale provider LINQ " vincerà " (se presente): è una scommessa più difficile da chiamare.
Vorrei certamente apprendere i fondamenti di LINQ stesso - e LINQ to XML è anche una bella API XML.
Altri suggerimenti
Come diceva Jon, è molto importante distinguere tra i provider LINQ. Ad esempio
- LINQ to objects: si basa su IEnumerable < T > ed è così radicato nel BCL che trovo molto difficile che vada ovunque
- LINQ to SQL: non lo uso quasi quanto LINQ, ma so che ha un buon seguito e alla gente sembra piacere.
Avvertenza: ho lavorato su LINQ quindi sono piuttosto distorto qui.
La cosa veramente bella di LINQ, in quello che penso sia davvero giusto, è che chiunque può scrivere un provider LINQ. Tutto ciò che serve sono alcuni metodi associabili con il nome giusto e improvvisamente si ha la sintassi della query.
var query = from it in someCollection select it.SomeProperty;
Posso scrivere questa affermazione senza usare nessuno del framework 3.5. Ho il mio provider LINQ che funziona con il framework 2.0 ed è compatibile con la sintassi della query utilizzata nel compilatore.
Personalmente mi appoggio maggiormente alla sintassi del metodo lambda / extension ma il codice risultante non è davvero diverso.