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 |