Představení technologie LINQ v jazyce Visual Basic

Language-Integrated Dotaz (LINQ) přidává možnosti dotazů do Visual Basic a poskytuje jednoduché a výkonné funkce, když pracujete se všemi druhy dat. Místo odeslání dotazu do databáze, která se má zpracovat, nebo práci s jinou syntaxí dotazu pro každý typ dat, která hledáte, LINQ zavádí dotazy jako součást jazyka Visual Basic. Používá jednotnou syntaxi bez ohledu na typ dat.

LINQ umožňuje dotazovat se na data z databáze SQL Server, XML, polí a kolekcí v paměti, ADO.NET datových sad nebo jakéhokoli jiného vzdáleného nebo místního zdroje dat, který podporuje LINQ. Můžete to udělat s běžnými prvky jazyka Visual Basic. Vzhledem k tomu, že dotazy jsou napsané v jazyce Visual Basic, vrátí se výsledky dotazu jako objekty se silnými typy. Tyto objekty podporují Technologii IntelliSense, která umožňuje psát kód rychleji a zachytit chyby v dotazech v době kompilace místo za běhu. Dotazy LINQ lze použít jako zdroj dalších dotazů k upřesnění výsledků. Mohou být také vázány na ovládací prvky, aby uživatelé mohli snadno zobrazit a upravit výsledky dotazu.

Následující příklad kódu například ukazuje dotaz LINQ, který vrací seznam zákazníků z kolekce a seskupuje je na základě jejich umístění.

' Obtain a list of customers.
Dim customers As List(Of Customer) = GetCustomers()

' Return customers that are grouped based on country.
Dim countries = From cust In customers
                Order By cust.Country, cust.City
                Group By CountryName = cust.Country
                Into CustomersInCountry = Group, Count()
                Order By CountryName

' Output the results.
For Each country In countries
    Debug.WriteLine(country.CountryName & " count=" & country.Count)

    For Each customer In country.CustomersInCountry
        Debug.WriteLine("   " & customer.CompanyName & "  " & customer.City)
    Next
Next

' Output:
'   Canada count=2
'      Contoso, Ltd  Halifax
'      Fabrikam, Inc.  Vancouver
'   United States count=1
'      Margie's Travel  Redmond

Spuštění příkladů

Pokud chcete spustit příklady v úvodu a v části Struktura dotazu LINQ , uveďte následující kód, který vrací seznamy zákazníků a objednávek.

' Return a list of customers.
Private Function GetCustomers() As List(Of Customer)
    Return New List(Of Customer) From
        {
            New Customer With {.CustomerID = 1, .CompanyName = "Contoso, Ltd", .City = "Halifax", .Country = "Canada"},
            New Customer With {.CustomerID = 2, .CompanyName = "Margie's Travel", .City = "Redmond", .Country = "United States"},
            New Customer With {.CustomerID = 3, .CompanyName = "Fabrikam, Inc.", .City = "Vancouver", .Country = "Canada"}
        }
End Function

' Return a list of orders.
Private Function GetOrders() As List(Of Order)
    Return New List(Of Order) From
        {
            New Order With {.CustomerID = 1, .Amount = "200.00"},
            New Order With {.CustomerID = 3, .Amount = "600.00"},
            New Order With {.CustomerID = 1, .Amount = "300.00"},
            New Order With {.CustomerID = 2, .Amount = "100.00"},
            New Order With {.CustomerID = 3, .Amount = "800.00"}
        }
End Function

' Customer Class.
Private Class Customer
    Public Property CustomerID As Integer
    Public Property CompanyName As String
    Public Property City As String
    Public Property Country As String
End Class

' Order Class.
Private Class Order
    Public Property CustomerID As Integer
    Public Property Amount As Decimal
End Class

Zprostředkovatelé LINQ

Poskytovatel LINQ mapuje Visual Basic dotazy LINQ na dotazovaný zdroj dat. Když napíšete dotaz LINQ, poskytovatel ho vezme a přeloží ho na příkazy, které bude moci zdroj dat spustit. Zprostředkovatel také převede data ze zdroje na objekty, které tvoří výsledek dotazu. Nakonec převede objekty na data při odesílání aktualizací do zdroje dat.

Visual Basic zahrnuje následující poskytovatele LINQ.

Poskytovatel Description
LINQ na objekty Poskytovatel LINQ to Objects umožňuje dotazovat se na kolekce a pole v paměti. Pokud objekt podporuje buď objektIEnumerable, nebo IEnumerable<T> rozhraní, poskytovatel LINQ to Objects vám umožní dotazovat se na něj.

Poskytovatele LINQ to Objects můžete povolit importem System.Linq oboru názvů, který se ve výchozím nastavení importuje pro všechny projekty Visual Basic.

Další informace o poskytovateli LINQ to Objects najdete v tématu LINQ to Objects.
Technologie LINQ to SQL Poskytovatel LINQ to SQL umožňuje dotazovat a upravovat data v databázi SQL Server. To usnadňuje mapování objektového modelu aplikace na tabulky a objekty v databázi.

Visual Basic usnadňuje práci s LINQ to SQL zahrnutím návrháře Návrhář relací objektů (O/R Designer). Tento návrhář se používá k vytvoření objektového modelu v aplikaci, která se mapuje na objekty v databázi. Návrhář relací poskytuje také funkce pro mapování uložených procedur a funkcí na DataContext objekt, které spravuje komunikaci s databází a ukládá stav pro optimistické kontroly souběžnosti.

Další informace o poskytovateli LINQ to SQL najdete v tématu LINQ to SQL. Další informace o Návrhář relací objektů najdete v tématu nástroje LINQ to SQL v Visual Studio.
Technologie LINQ to XML Zprostředkovatel LINQ to XML umožňuje dotazovat a upravovat XML. Kód XML v paměti můžete upravit nebo můžete načíst XML ze souboru a uložit ho do souboru.

Kromě toho zprostředkovatel LINQ to XML umožňuje literály XML a vlastnosti osy XML, které umožňují psát XML přímo do kódu Visual Basic. Další informace najdete v tématu XML.
LINQ na DataSet Poskytovatel LINQ to DataSet umožňuje dotazovat a aktualizovat data v datové sadě ADO.NET. Výkon LINQ můžete přidat do aplikací, které používají datové sady, aby se zjednodušily a rozšířily možnosti pro dotazování, agregaci a aktualizaci dat v datové sadě.

Další informace najdete v tématu LINQ to DataSet.

Struktura dotazu LINQ

Dotaz LINQ, který se často označuje jako výraz dotazu, se skládá z kombinace klauzulí dotazu, které identifikují zdroje dat a proměnné iterace dotazu. Výraz dotazu může obsahovat také pokyny pro řazení, filtrování, seskupení a spojování nebo výpočty, které se mají použít u zdrojových dat. Syntaxe výrazu dotazu se podobá syntaxi SQL; proto můžete najít velkou část syntaxe známé.

Výraz dotazu začíná klauzulí From . Tato klauzule identifikuje zdrojová data pro dotaz a proměnné, které se používají k odkazování na jednotlivé prvky zdrojových dat jednotlivě. Tyto proměnné jsou pojmenované proměnné rozsahu nebo proměnné iterace. Klauzule From se vyžaduje pro dotaz, s výjimkou Aggregate dotazů, kde From je klauzule nepovinná. Jakmile se obor a zdroj dotazu identifikují v From klauzulích nebo Aggregate klauzulích, můžete zahrnout libovolnou kombinaci klauzulí dotazu, které dotaz zpřesní. Podrobnosti o klauzulích dotazu najdete v tématu Visual Basic LINQ Query Operators dále v tomto tématu. Například následující dotaz identifikuje zdrojovou kolekci zákaznických dat jako customers proměnnou a iterační proměnnou s názvem cust.

Dim customers = GetCustomers()

Dim queryResults = From cust In customers

For Each result In queryResults
    Debug.WriteLine(result.CompanyName & "  " & result.Country)
Next

' Output:
'   Contoso, Ltd  Canada
'   Margie's Travel  United States
'   Fabrikam, Inc.  Canada

Tento příklad je platným dotazem sám o sobě; Dotaz se ale stává mnohem výkonnější, když přidáte další klauzule dotazu, aby se výsledek zpřesní. Můžete například přidat Where klauzuli pro filtrování výsledku podle jedné nebo více hodnot. Výrazy dotazu jsou jedním řádkem kódu; Na konec dotazu můžete pouze připojit další klauzule dotazu. Dotaz můžete rozdělit na více řádků textu, abyste zlepšili čitelnost pomocí znaku pro pokračování řádku podtržítka (_). Následující příklad kódu ukazuje příklad dotazu, který obsahuje Where klauzuli.

Dim queryResults = From cust In customers
                   Where cust.Country = "Canada"

Další silnou klauzulí dotazu je Select klauzule, která umožňuje vracet pouze vybraná pole ze zdroje dat. Dotazy LINQ vrací výčtové kolekce objektů silného typu. Dotaz může vrátit kolekci anonymních typů nebo pojmenovaných typů. Klauzuli Select můžete použít k vrácení pouze jednoho pole ze zdroje dat. Když to uděláte, typ vrácené kolekce je typ tohoto jediného pole. Klauzuli Select můžete použít také k vrácení více polí ze zdroje dat. Když to uděláte, typ vrácené kolekce je nový anonymní typ. Pole vrácená dotazem můžete také spárovat s poli zadaného pojmenovaného typu. Následující příklad kódu ukazuje výraz dotazu, který vrací kolekci anonymních typů, které mají členy naplněné daty z vybraných polí ze zdroje dat.

Dim queryResults = From cust In customers
               Where cust.Country = "Canada"
               Select cust.CompanyName, cust.Country

Dotazy LINQ lze použít také ke kombinování více zdrojů dat a vrácení jednoho výsledku. Můžete to provést pomocí jedné nebo více From klauzulí nebo pomocí JoinGroup Join klauzulí dotazu. Následující příklad kódu ukazuje výraz dotazu, který kombinuje data zákazníků a objednávek a vrací kolekci anonymních typů obsahujících data zákazníka a objednávky.

Dim customers = GetCustomers()
Dim orders = GetOrders()

Dim queryResults = From cust In customers, ord In orders
           Where cust.CustomerID = ord.CustomerID
           Select cust, ord

For Each result In queryResults
    Debug.WriteLine(result.ord.Amount & "  " & result.ord.CustomerID & "  " & result.cust.CompanyName)
Next

' Output:
'   200.00  1  Contoso, Ltd
'   300.00  1  Contoso, Ltd
'   100.00  2  Margie's Travel
'   600.00  3  Fabrikam, Inc.
'   800.00  3  Fabrikam, Inc.

Klauzuli Group Join můžete použít k vytvoření výsledku hierarchického dotazu, který obsahuje kolekci objektů zákazníka. Každý objekt zákazníka má vlastnost, která obsahuje kolekci všech objednávek pro daného zákazníka. Následující příklad kódu ukazuje výraz dotazu, který kombinuje data zákazníků a objednávek jako hierarchický výsledek a vrací kolekci anonymních typů. Dotaz vrátí typ, který obsahuje CustomerOrders vlastnost, která obsahuje kolekci dat objednávek pro zákazníka. Zahrnuje také OrderTotal vlastnost, která obsahuje součet součtů pro všechny objednávky daného zákazníka. (Tento dotaz je ekvivalentem LEVÉHO VNĚJŠÍHO SPOJENÍ.)

Dim customers = GetCustomers()
Dim orders = GetOrders()

Dim queryResults = From cust In customers
                   Group Join ord In orders On
                     cust.CustomerID Equals ord.CustomerID
                     Into CustomerOrders = Group,
                          OrderTotal = Sum(ord.Amount)
                   Select cust.CompanyName, cust.CustomerID,
                          CustomerOrders, OrderTotal

For Each result In queryResults
    Debug.WriteLine(result.OrderTotal & "  " & result.CustomerID & "  " & result.CompanyName)
    For Each ordResult In result.CustomerOrders
        Debug.WriteLine("   " & ordResult.Amount)
    Next
Next

' Output:
'   500.00  1  Contoso, Ltd
'      200.00
'      300.00
'   100.00  2  Margie's Travel
'      100.00
'   1400.00  3  Fabrikam, Inc.
'      600.00
'      800.00

Existuje několik dalších operátorů dotazu LINQ, které můžete použít k vytvoření výkonných výrazů dotazu. Další část tohoto tématu popisuje různé klauzule dotazu, které můžete zahrnout do výrazu dotazu. Podrobnosti o klauzulích dotazu Visual Basic najdete v tématu Dotazy.

Visual Basic operátory dotazů LINQ

Třídy v System.Linq oboru názvů a další obory názvů, které podporují dotazy LINQ, zahrnují metody, které můžete volat k vytváření a upřesnění dotazů na základě potřeb vaší aplikace. Visual Basic obsahuje klíčová slova pro následující běžné klauzule dotazu. Podrobnosti o klauzulích dotazu Visual Basic najdete v tématu Dotazy.

Klauzule From

K zahájení dotazu se vyžaduje klauzule nebo Aggregate klauzuleFrom. From Klauzule určuje zdrojovou kolekci a proměnnou iterace pro dotaz. Příklad:

' Returns the company name for all customers for which
' the Country is equal to "Canada".
Dim names = From cust In customers
            Where cust.Country = "Canada"
            Select cust.CompanyName

Select – klauzule

Nepovinný parametr. Select Klauzule Deklaruje sadu proměnných iterace pro dotaz. Příklad:

' Returns the company name and ID value for each
' customer as a collection of a new anonymous type.
Dim customerList = From cust In customers
                   Select cust.CompanyName, cust.CustomerID

Select Pokud není zadaná klauzule, proměnné iterace pro dotaz se skládají z proměnných iterace určených klauzulí From nebo Aggregate klauzulí.

Klauzule Where

Nepovinný parametr. Where Klauzule určuje podmínku filtrování dotazu. Příklad:

' Returns all product names for which the Category of
' the product is "Beverages".
Dim names = From product In products
            Where product.Category = "Beverages"
            Select product.Name

Klauzule Order By

Nepovinný parametr. KlauzuleOrder By určuje pořadí řazení sloupců v dotazu. Příklad:

' Returns a list of books sorted by price in 
' ascending order.
Dim titlesAscendingPrice = From b In books
                           Order By b.price

Join – klauzule

Nepovinný parametr. Klauzule AJoin kombinuje dvě kolekce do jedné kolekce. Příklad:

' Returns a combined collection of all of the 
' processes currently running and a descriptive
' name for the process taken from a list of 
' descriptive names.
Dim processes = From proc In Process.GetProcesses
                Join desc In processDescriptions
                  On proc.ProcessName Equals desc.ProcessName
                Select proc.ProcessName, proc.Id, desc.Description

Group By – klauzule

Nepovinný parametr. Group By Klauzule seskupí prvky výsledku dotazu. Dá se použít k použití agregačních funkcí pro každou skupinu. Příklad:

' Returns a list of orders grouped by the order date
' and sorted in ascending order by the order date.
Dim orderList = From order In orders
                Order By order.OrderDate
                Group By OrderDate = order.OrderDate
                Into OrdersByDate = Group

Group Join – klauzule

Nepovinný parametr. Klauzule AGroup Join kombinuje dvě kolekce do jedné hierarchické kolekce. Příklad:

' Returns a combined collection of customers and
' customer orders.
Dim customerList = From cust In customers
                   Group Join ord In orders On
                     cust.CustomerID Equals ord.CustomerID
                   Into CustomerOrders = Group,
                        TotalOfOrders = Sum(ord.Amount)
                   Select cust.CompanyName, cust.CustomerID,
                          CustomerOrders, TotalOfOrders

Aggregate – klauzule

K zahájení dotazu se vyžaduje klauzule nebo From klauzuleAggregate. Klauzule Aggregate aplikuje na kolekci jednu nebo více agregačních funkcí. Klauzuli Aggregate můžete například použít k výpočtu součtu pro všechny prvky vrácené dotazem, jak je znázorněno v následujícím příkladu.

' Returns the sum of all order amounts.
Dim orderTotal = Aggregate order In orders
                 Into Sum(order.Amount)

Klauzuli Aggregate můžete také použít k úpravě dotazu. Klauzuli Aggregate můžete například použít k provedení výpočtu související kolekce dotazů. Příklad:

' Returns the customer company name and largest 
' order amount for each customer.
Dim customerMax = From cust In customers
                  Aggregate order In cust.Orders
                  Into MaxOrder = Max(order.Amount)
                  Select cust.CompanyName, MaxOrder

Let – klauzule

Nepovinný parametr. Let Klauzule vypočítá hodnotu a přiřadí ji nové proměnné v dotazu. Příklad:

' Returns a list of products with a calculation of
' a ten percent discount.
Dim discountedProducts = From prod In products
                         Let Discount = prod.UnitPrice * 0.1
                         Where Discount >= 50
                         Select prod.Name, prod.UnitPrice, Discount

Distinct – klauzule

Nepovinný parametr. Distinct Klauzule omezuje hodnoty aktuální proměnné iterace tak, aby eliminovaly duplicitní hodnoty ve výsledcích dotazu. Příklad:

' Returns a list of cities with no duplicate entries.
Dim cities = From item In customers
             Select item.City
             Distinct

Skip – klauzule

Nepovinný parametr. Skip Klauzule obchází zadaný počet prvků v kolekci a potom vrátí zbývající prvky. Příklad:

' Returns a list of customers. The first 10 customers
' are ignored and the remaining customers are
' returned.
Dim customerList = From cust In customers
                   Skip 10

Skip While – klauzule

Nepovinný parametr. Skip While Klauzule obchází prvky v kolekci, pokud je true zadaná podmínka a vrátí zbývající prvky. Příklad:

' Returns a list of customers. The query ignores all
' customers until the first customer for whom
' IsSubscriber returns false. That customer and all
' remaining customers are returned.
Dim customerList = From cust In customers
                   Skip While IsSubscriber(cust)

Take – klauzule

Nepovinný parametr. Klauzule ATake vrátí zadaný počet souvislých prvků od začátku kolekce. Příklad:

' Returns the first 10 customers.
Dim customerList = From cust In customers
                   Take 10

Take While – klauzule

Nepovinný parametr. Take While Klauzule obsahuje prvky v kolekci, pokud je true zadaná podmínka a obchází zbývající prvky. Příklad:

' Returns a list of customers. The query returns
' customers until the first customer for whom 
' HasOrders returns false. That customer and all 
' remaining customers are ignored.
Dim customersWithOrders = From cust In customers
                          Order By cust.Orders.Count Descending
                          Take While HasOrders(cust)

Použití dalších funkcí dotazů LINQ

Další funkce dotazu LINQ můžete použít voláním členů výčtu a dotazovatelných typů, které poskytuje LINQ. Tyto další funkce můžete použít voláním konkrétního operátoru dotazu na výsledek výrazu dotazu. Například následující příklad používá metodu Enumerable.Union ke kombinování výsledků dvou dotazů do jednoho výsledku dotazu. Používá metodu Enumerable.ToList k vrácení výsledku dotazu jako obecného seznamu.

Public Function GetAllCustomers() As List(Of Customer)
    Dim customers1 = From cust In domesticCustomers
    Dim customers2 = From cust In internationalCustomers

    Dim customerList = customers1.Union(customers2)

    Return customerList.ToList()
End Function

Podrobnosti o dalších funkcích LINQ najdete v tématu Přehled standardních operátorů dotazů.

Připojení do databáze pomocí LINQ to SQL

V Visual Basic identifikujete SQL Server databázové objekty, jako jsou tabulky, zobrazení a uložené procedury, ke kterým chcete získat přístup pomocí souboru LINQ to SQL. Soubor LINQ to SQL má příponu .dbml.

Pokud máte platné připojení k databázi SQL Server, můžete do projektu přidat šablonu položky LINQ to SQL Třídy. Zobrazí se Návrhář relací objektů (návrhář relací relací). Návrhář relací umožňuje přetáhnout položky, ke kterým chcete přistupovat v kódu z Průzkumníka serveru ExplorerDatabase Explorer/ na plochu návrháře. Soubor LINQ to SQL přidá DataContext objekt do projektu. Tento objekt obsahuje vlastnosti a kolekce pro tabulky a zobrazení, ke kterým chcete získat přístup, a metody pro uložené procedury, které chcete volat. Po uložení změn do souboru LINQ to SQL (.dbml) můžete k těmto objektům v kódu přistupovat odkazem DataContext na objekt definovaný Návrhářem relací objektů. Objekt DataContext projektu je pojmenovaný na základě názvu souboru LINQ to SQL. Například soubor LINQ to SQL s názvem Northwind.dbml vytvoří DataContext objekt s názvem NorthwindDataContext.

Příklady s podrobnými pokyny najdete v tématu Postupy: Dotazování databáze a postupy: Volání uložené procedury.

Visual Basic funkce, které podporují LINQ

Visual Basic zahrnuje další funkce, které usnadňují použití LINQ a snižují množství kódu, který musíte napsat, aby bylo možné provádět dotazy LINQ. Mezi ně patří:

  • Anonymní typy, které umožňují vytvořit nový typ na základě výsledku dotazu.

  • Implicitně zadané proměnné, které umožňují odložit zadání typu a nechat kompilátor odvodit typ na základě výsledku dotazu.

  • Metody rozšíření, které umožňují rozšířit existující typ vlastními metodami beze změny samotného typu.

Podrobnosti najdete v tématu Visual Basic funkce, které podporují LINQ.

Odložené a okamžité spuštění dotazu

Provádění dotazu je oddělené od vytvoření dotazu. Po vytvoření dotazu se jeho spuštění aktivuje samostatným mechanismem. Dotaz lze spustit hned, jak je definován (okamžité spuštění), nebo lze definici uložit a dotaz lze spustit později (odložené spuštění).

Ve výchozím nastavení se při vytváření dotazu samotný dotaz nespustí okamžitě. Místo toho je definice dotazu uložena v proměnné, která se používá k odkazování na výsledek dotazu. Pokud se k proměnné výsledku dotazu dostanete později v kódu, například ve For…Next smyčce, dotaz se spustí. Tento proces se označuje jako odložené spuštění.

Dotazy je možné provést také při jejich definování, což se označuje jako okamžité spuštění. Okamžité spuštění můžete aktivovat použitím metody, která vyžaduje přístup k jednotlivým prvkům výsledku dotazu. Může to být výsledek zahrnutí agregační funkce, například Count, , SumAverage, Minnebo Max. Další informace o agregačních funkcích naleznete v tématu Agregační klauzule.

Použití nebo ToListToArray metod také vynutí okamžité spuštění. To může být užitečné, když chcete dotaz spustit okamžitě a uložit výsledky do mezipaměti. Další informace o těchto metodách naleznete v tématu Převod datových typů.

Další informace o provádění dotazů naleznete v tématu Zápis prvního dotazu LINQ.

XML v jazyce Visual Basic

Funkce XML v Visual Basic zahrnují literály XML a vlastnosti osy XML, které umožňují snadno vytvářet, přistupovat, dotazovat a upravovat XML v kódu. Literály XML umožňují psát XML přímo do kódu. Kompilátor Visual Basic zachází s XML jako s datovým objektem první třídy.

Následující příklad kódu ukazuje, jak vytvořit element XML, získat přístup k jeho dílčím prvkům a atributům a dotazovat obsah elementu pomocí LINQ.

' Place Imports statements at the top of your program.  
Imports <xmlns:ns="http://SomeNamespace">

Module Sample1

    Sub SampleTransform()

        ' Create test by using a global XML namespace prefix. 

        Dim contact = 
            <ns:contact>
                <ns:name>Patrick Hines</ns:name>
                <ns:phone ns:type="home">206-555-0144</ns:phone>
                <ns:phone ns:type="work">425-555-0145</ns:phone>
            </ns:contact>

        Dim phoneTypes = 
          <phoneTypes>
              <%= From phone In contact.<ns:phone> 
                  Select <type><%= phone.@ns:type %></type> 
              %>
          </phoneTypes>

        Console.WriteLine(phoneTypes)
    End Sub

End Module

Další informace najdete v tématu XML.

Téma Description
XML Popisuje funkce XML v Visual Basic, které lze dotazovat a které umožňují zahrnout XML jako datové objekty první třídy do kódu Visual Basic.
Dotazy Poskytuje referenční informace o klauzulích dotazu, které jsou k dispozici v Visual Basic.
LINQ (jazykově integrovaný dotaz) Obsahuje obecné informace, pokyny k programování a ukázky pro LINQ.
Technologie LINQ to SQL Obsahuje obecné informace, pokyny k programování a ukázky pro LINQ to SQL.
LINQ na objekty Obsahuje obecné informace, pokyny k programování a ukázky pro LINQ to Objects.
LINQ to ADO.NET (stránka portálu) Obsahuje odkazy na obecné informace, pokyny k programování a ukázky pro LINQ to ADO.NET.
Technologie LINQ to XML Obsahuje obecné informace, pokyny k programování a ukázky pro LINQ to XML.

Postupy a názorná témata

Postupy: Dotazování databáze

Postupy: Volání uložené procedury

Postupy: Úprava dat v databázi

Postupy: Kombinování dat s spojeními

Postupy: Řazení výsledků dotazu

Postupy: Filtrování výsledků dotazu

Postupy: Počet, součet nebo průměr dat

Postupy: Vyhledání minimální nebo maximální hodnoty ve výsledku dotazu

Postupy: Přiřazení uložených procedur za účelem aktualizací, vkládání a odstraňování (Návrhář relací objektů)

Kapitola 17: LINQ v programování Visual Basic 2008

Viz také