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 |