Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le query LINQ to SQL vengono definite usando la stessa sintassi usata in LINQ. L'unica differenza consiste nel fatto che gli oggetti a cui si fa riferimento nelle query vengono mappati agli elementi di un database. Per altre informazioni, vedere Introduzione alle query LINQ (C#).
LINQ to SQL converte le query scritte in query SQL equivalenti e le invia al server per l'elaborazione. In particolare, l'applicazione usa l'API LINQ to SQL per richiedere l'esecuzione di query. Il provider LINQ to SQL trasforma quindi la query in testo SQL e delega l'esecuzione al provider ADO. Il provider ADO restituisce i risultati della query come .DataReader Il provider LINQ to SQL converte i risultati di ADO in una IQueryable raccolta di oggetti utente.
Annotazioni
La maggior parte dei metodi e degli operatori nei tipi predefiniti di .NET Framework include traduzioni dirette in SQL. Quelli che LINQ non possono convertire generano eccezioni di runtime. Per ulteriori informazioni, vedere Mappatura tipiSQL-CLR.
La tabella seguente illustra le analogie e le differenze tra gli elementi di query LINQ e LINQ to SQL.
| Elemento | LINQ Query | LINQ to SQL Query |
|---|---|---|
| Tipo restituito della variabile locale che contiene la query (per le query che restituiscono sequenze) | Generico IEnumerable |
Generico IQueryable |
| Specificare l'origine dati | Usa la From clausola (Visual Basic) o from (C#) |
Uguali |
| Filtraggio | Usa la Where/where clausola |
Uguali |
| Raggruppamento | Usa la Group…By/groupby clausola |
Uguali |
| Selezione (proiezione) | Usa la Select/select clausola |
Uguali |
| Esecuzione posticipata e immediata | Vedere Introduzione alle query LINQ (C#) | Uguali |
| Implementazione delle giunzioni | Usa la Join/join clausola |
Può usare la Join/join clausola , ma usa in modo più efficace l'attributo AssociationAttribute . Per ulteriori informazioni, consulta Querying Across Relationships. |
| Esecuzione remota e locale | Per altre informazioni, vedere Remote vs. Local Execution. | |
| Streaming e query memorizzate nella cache | Non applicabile in uno scenario di memoria locale |