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.

Anmärkning

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 iSQL-CLR typmappning.

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

Objekt 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) Allmän IEnumerable Allmän IQueryable
Ange datakällan Använder From klausulen (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 sammanfogningar 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- vs. lokal utförande 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