Condividi tramite


Query LINQ to SQL

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

Vedere anche