Dela via


LINQ till SQL-frågor

Du definierar LINQ till SQL-frågor med samma syntax som i LINQ. Den enda skillnaden är att objekten som refereras i dina frågor mappas till element i en databas. Mer information finns i Introduktion till LINQ-frågor (C#).

LINQ till SQL översätter de frågor som du skriver till motsvarande SQL-frågor och skickar dem till servern för bearbetning. Mer specifikt använder ditt program LINQ till SQL API för att begära frågekörning. LINQ till SQL-providern omvandlar sedan frågan till SQL-text och delegerar körningen till ADO-providern. ADO-providern returnerar frågeresultat som en DataReader. LINQ till SQL-providern översätter ADO-resultatet till en IQueryable samling användarobjekt.

Kommentar

De flesta metoder och operatorer på inbyggda .NET Framework-typer har direkta översättningar till SQL. De som LINQ inte kan översätta genererar körningsfel. Mer information finns i SQL-CLR-typmappning.

I följande tabell visas likheterna och skillnaderna mellan LINQ och LINQ med SQL-frågeobjekt.

Artikel LINQ-fråga LINQ till SQL-fråga
Returtyp för den lokala variabel som innehåller frågan (för frågor som returnerar sekvenser) Generiska IEnumerable Generiska IQueryable
Ange datakällan From Använder satsen (Visual Basic) eller from (C#) Samma
Filtrering Använder - Where/where satsen Samma
Gruppering Använder - Group…By/groupby satsen Samma
Välja (projektering) Använder - Select/select satsen Samma
Uppskjuten kontra omedelbar körning Se Introduktion till LINQ-frågor (C#) Samma
Implementera kopplingar Använder - Join/join satsen Kan använda Join/join -satsen, men använder AssociationAttribute attributet mer effektivt. Mer information finns i Fråga mellan relationer.
Fjärr- och lokal körning Mer information finns i Fjärr- och lokal körning.
Direktuppspelning jämfört med cachelagrad fråga Inte tillämpligt i ett scenario med lokalt minne

Se även