Condividi tramite


Query [LINQ to SQL]

Le query LINQ to SQL vengono definite usando la stessa sintassi usata in LINQ. La sola differenza riguarda il mapping degli oggetti a cui viene fatto riferimento nelle query, che viene eseguito agli elementi in un database. Per altre informazioni, vedere Introduzione alle query LINQ (C#).

In LINQ to SQL le query create vengono convertite in query SQL equivalenti e inviate 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. che restituisce i risultati della query come DataReader. Il provider LINQ to SQL converte i risultati di ADO in una raccolta IQueryable di oggetti utente.

Nota

Per la maggior parte dei metodi e degli operatori nei tipi .NET Framework incorporati sono disponibili conversioni dirette in SQL. Quelli che non possono essere convertiti da LINQ generano eccezioni in fase di esecuzione. Per altre informazioni, vedere Mapping del tipo SQL-CLR.

Nella tabella seguente sono illustrate le similitudini e le differenze tra LINQ e gli elementi delle query LINQ to SQL.

Articolo Query LINQ Query LINQ to SQL
Tipo restituito della variabile locale che contiene la query (per le query che restituiscono sequenze) Generico IEnumerable Generico IQueryable
Specifica dell'origine dati Usa la clausola From (Visual Basic) o from (C#) Uguali
Filtro Usa la clausola Where/where Uguali
Raggruppamento Usa la clausola Group…By/groupby Uguali
Selezione (proiezione) Usa la clausola Select/select Uguali
Esecuzione posticipata e immediata Vedere Introduzione alle query LINQ (C#) Uguali
Implementazione di join Usa la clausola Join/join Può essere usata la clausola Join/join, ma più efficacemente viene usato l'attributo AssociationAttribute. Per altre informazioni, vedere Esecuzione di query tra relazioni.
Esecuzione in modalità remota e locale Per altre informazioni, vedere Esecuzione remota o locale.
Esecuzione di query mediante trasmissione o memorizzate nella cache Non applicabile in un scenario con memoria locale

Vedi anche