statement - linq to entities query syntax




Informazioni su LINQ (7)

Panoramica

Una delle cose che ho chiesto molto su questo sito è LINQ . Le domande che ho posto sono state ampie e varie e spesso non hanno molto contesto dietro di loro. Quindi, nel tentativo di consolidare la conoscenza che ho acquisito su Linq, sto postando questa domanda al fine di mantenerla e aggiornarla con ulteriori informazioni man mano che continuo a conoscere LINQ.

Spero anche che si rivelerà una risorsa utile per altre persone che desiderano conoscere LINQ.

Cos'è LINQ?

Da LINQ :

Il progetto LINQ è un nome in codice per un insieme di estensioni a .NET Framework che comprendono operazioni di query, impostazione e trasformazione integrate nella lingua. Estende C # e Visual Basic con la sintassi del linguaggio nativo per le query e fornisce librerie di classi per sfruttare queste funzionalità.

Ciò significa che LINQ fornisce un modo standard per eseguire query su una serie di origini dati utilizzando una sintassi comune.

Quali sono i sapori di LINQ?

Attualmente ci sono alcuni diversi provider LINQ forniti da Microsoft:

Ce ne sono molti altri, molti dei quali sono elencati here .

Quali sono i vantaggi?

  • Modo standardizzato per interrogare più origini dati
  • Compilare la sicurezza dei tempi delle query
  • Modo ottimizzato per eseguire operazioni basate su oggetti in memoria
  • Possibilità di eseguire il debug delle query

Quindi, cosa posso fare con LINQ?

Chook fornisce un modo per generare file CSV
Jeff mostra come rimuovere i duplicati da una matrice
Bob ottiene una distinta lista ordinata da un datatable
Marxidad mostra come ordinare un array
Dana ottiene aiuto nell'implementazione di Quick Sort Using Linq

Dove iniziare?

Di seguito è riportato un riepilogo dei collegamenti dalla domanda di GateKiller :
Scott Guthrie fornisce un'introduzione a Linq sul suo blog
Una panoramica di LINQ su MSDN

ChrisAnnODell suggerisce di verificare:

Di cosa ho bisogno per usare LINQ?

Linq è attualmente disponibile in VB.Net 9.0 e C # 3.0, quindi avrai bisogno di Visual Studio 2008 o versione successiva per ottenere tutti i benefici. (Puoi sempre scrivere il tuo codice nel blocco note e compilare usando MSBuild)

C'è anche uno strumento chiamato LinqBridge che ti permetterà di eseguire query come Linq in C # 2.0.

Consigli e suggerimenti usando LINQ

Questa domanda ha alcuni modi complicati per usare LINQ


Alcuni suggerimenti LINQ:

  • Applica filtri prima di un join per migliorare le prestazioni delle query
  • Filtra le query LINQ utilizzando il confronto dei riferimenti agli oggetti
  • Applicare gli aggregati alle raccolte vuote nelle query LINQ a SQL
  • Ritarda il caricamento di una proprietà in LINQ su SQL
  • Utilizza le funzioni con valori di tabella con il caricamento ansioso attivato
  • Metti i join nell'ordine corretto in una query LINQ to Objects
  • Componi una query LINQ all'interno di un ciclo

http://www.aspnetpro.com/articles/2009/04/asp200904zh_f/asp200904zh_f.asp



I miei 2 centesimi, leggi i capitoli "11 Query expressions e LINQ to Objects" e "12 LINQ beyond collections" in "C # in Depth" per capire come funziona LINQ.


IMHO, un vantaggio trascurato, ma importante, è l'efficienza di codifica di LINQ, ad esempio quanto può essere realizzato con un codice così piccolo. Personalmente trovo la sintassi della query facile da leggere e comprendere.



Ottieni il libro Linq in Action è una lettura facile per un libro di codice e ti insegna davvero come usare Linq e le nuove funzionalità di .NET 3.5 alcune delle parti interessanti che hanno messo per la lingua.


Per la pratica di Linq

Se vuoi un po 'di pratica su LINQ con esercizi e risposte, davvero facile da configurare e, a mio parere, fantastico:

https://github.com/walkhard/linq-exercises

Scarica da git, apri in Visual Studio. Il tuo compito è far passare i test.

[disclosure: ho imparato un po 'di linq e contribuisco al progetto quindi sì, penso che sia un modo fantastico, veloce ed efficace per imparare.]





linq-to-objects