Zapytania LINQ to SQL
Zapytania LINQ to SQL definiuje się przy użyciu tej samej składni, co w LINQ. Jedyną różnicą jest to, że obiekty przywoływane w zapytaniach są mapowane na elementy w bazie danych. Aby uzyskać więcej informacji, zobacz Wprowadzenie do zapytań LINQ (C#).
LINQ to SQL tłumaczy zapytania zapisywane w równoważnych zapytaniach SQL i wysyła je do serwera na potrzeby przetwarzania. W szczególności aplikacja używa interfejsu API LINQ to SQL do żądania wykonania zapytań. Dostawca LINQ to SQL przekształca zapytanie w tekst SQL i deleguje wykonywanie do dostawcy ADO. Dostawca ADO zwraca wyniki zapytania jako DataReader
. Dostawca LINQ to SQL tłumaczy wyniki ADO na IQueryable kolekcję obiektów użytkownika.
Uwaga
Większość metod i operatorów w wbudowanych typach programu .NET Framework ma bezpośrednie tłumaczenia na język SQL. Te, które LINQ nie mogą tłumaczyć wyjątków w czasie wykonywania. Aby uzyskać więcej informacji, zobacz Mapowanie typów SQL-CLR.
W poniższej tabeli przedstawiono podobieństwa i różnice między elementami zapytań LINQ i LINQ to SQL.
Towar | Zapytanie LINQ | Zapytanie LINQ to SQL |
---|---|---|
Zwraca typ zmiennej lokalnej, która zawiera zapytanie (w przypadku zapytań, które zwracają sekwencje) | Ogólny IEnumerable |
Ogólny IQueryable |
Określanie źródła danych | Używa klauzuli From (Visual Basic) lub from (C#) |
To samo |
Filtrowanie | Używa klauzuli Where /where |
To samo |
Grupowanie | Używa klauzuli Group…By /groupby |
To samo |
Wybieranie (projektowanie) | Używa klauzuli Select /select |
To samo |
Odroczone i natychmiastowe wykonanie | Zobacz Wprowadzenie do zapytań LINQ (C#) | To samo |
Implementowanie sprzężeń | Używa klauzuli Join /join |
Może używać klauzuli Join /join , ale bardziej efektywnie używa atrybutu .AssociationAttribute Aby uzyskać więcej informacji, zobacz Querying Across Relationships (Wykonywanie zapytań między relacjami). |
Zdalne i lokalne wykonywanie | Aby uzyskać więcej informacji, zobacz Zdalne i lokalne wykonywanie. | |
Przesyłanie strumieniowe a buforowane zapytania | Nie dotyczy w scenariuszu pamięci lokalnej |