Share via


A LINQ bemutatása a Visual Basicben

A language-Integrated Query (LINQ) lekérdezési képességeket ad a Visual Basichez, és egyszerű és hatékony képességeket biztosít, amikor mindenféle adattal dolgozik. A linq ahelyett, hogy egy feldolgozandó adatbázisba küldené a lekérdezést, vagy különböző lekérdezési szintaxissal dolgozik a keresett adattípusokhoz, a LINQ a Visual Basic nyelv részeként mutatja be a lekérdezéseket. Az adatok típusától függetlenül egységes szintaxist használ.

A LINQ lehetővé teszi adatok lekérdezését SQL Server-adatbázisból, XML-ből, memóriabeli tömbökből és gyűjteményekből, ADO.NET adatkészletekből vagy bármely más, a LINQ-t támogató távoli vagy helyi adatforrásból. Mindezt a Visual Basic gyakori nyelvi elemeivel teheti meg. Mivel a lekérdezések a Visual Basic nyelven vannak megírva, a lekérdezés eredményei erősen gépelt objektumokként jelennek meg. Ezek az objektumok támogatják az IntelliSense-t, amely lehetővé teszi, hogy gyorsabban írjon kódot, és a lekérdezések hibáit fordítási időben észlelje a futási idő helyett. A LINQ-lekérdezések további lekérdezések forrásaként használhatók az eredmények pontosításához. A vezérlőkhöz is köthetők, így a felhasználók egyszerűen megtekinthetik és módosíthatják a lekérdezés eredményeit.

Az alábbi példakód például egy LINQ-lekérdezést mutat be, amely egy gyűjteményből származó ügyfelek listáját adja vissza, és a helyük alapján csoportosítja őket.

' 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

A példák futtatása

Ha a példákat egy LINQ-lekérdezés bevezető szakaszában és struktúrájában szeretné futtatni, adja meg a következő kódot, amely az ügyfelek és rendelések listáját adja vissza.

' 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

LINQ-szolgáltatók

Egy LINQ-szolgáltató leképozza a Visual Basic LINQ-lekérdezéseket a lekérdezett adatforráshoz. LINQ-lekérdezés írásakor a szolgáltató végrehajtja a lekérdezést, és olyan parancsokra fordítja le, amelyeket az adatforrás képes lesz végrehajtani. A szolgáltató a forrásból származó adatokat a lekérdezés eredményét alkotó objektumokká alakítja. Végül az objektumokat adatokká alakítja, amikor frissítéseket küld az adatforrásnak.

A Visual Basic a következő LINQ-szolgáltatókat tartalmazza.

Szolgáltató Leírás
LINQ az objektumokhoz A LINQ to Objects szolgáltató lehetővé teszi a memóriabeli gyűjtemények és tömbök lekérdezését. Ha egy objektum támogatja vagy az IEnumerableIEnumerable<T> interfészt, a LINQ to Objects szolgáltató lehetővé teszi a lekérdezést.

A LINQ objektumszolgáltatóhoz való engedélyezéséhez importálja a System.Linq névteret, amelyet alapértelmezés szerint az összes Visual Basic-projekt importál.

További információ a LINQ-objektumszolgáltatóról: LINQ to Objects.
LINQ to SQL A LINQ–SQL-szolgáltató lehetővé teszi az SQL Server-adatbázisok adatainak lekérdezését és módosítását. Így egyszerűen leképezheti az alkalmazás objektummodellét az adatbázis tábláira és objektumaira.

A Visual Basic az Objektumrelációs Tervező (O/R Tervező) belefoglalásával megkönnyíti a LINQ és az SQL közötti munkát. Ez a tervező egy olyan objektummodell létrehozására szolgál egy alkalmazásban, amely egy adatbázisban lévő objektumokra képez le. Az O/R Tervező a tárolt eljárások és függvények objektumhoz való DataContext leképezésére is használható, amely kezeli az adatbázissal való kommunikációt, és optimista egyidejűségi ellenőrzésekhez tárolja az állapotot.

A LINQ-ról az SQL-szolgáltatóra vonatkozó további információkért lásd : LINQ–SQL. Az objektumrelációs Tervező további információkért lásd: LINQ to SQL Tools a Visual Studióban.
LINQ–XML A LINQ–XML-szolgáltató lehetővé teszi az XML lekérdezését és módosítását. Módosíthatja a memóriában lévő XML-t, vagy betöltheti az XML-t egy fájlba, és mentheti az XML-t.

Emellett a LINQ–XML-szolgáltató lehetővé teszi az XML-literálok és XML-tengelyek tulajdonságait, amelyek lehetővé teszik az XML írását közvetlenül a Visual Basic-kódban. További információ: XML.
LINQ–DataSet A LINQ to DataSet szolgáltató lehetővé teszi egy ADO.NET adathalmaz adatainak lekérdezését és frissítését. Az adathalmazokat használó alkalmazásokhoz hozzáadhatja a LINQ erejét, hogy egyszerűsítse és bővítse az adathalmazban lévő adatok lekérdezésére, összesítésére és frissítésére vonatkozó képességeit.

További információ: LINQ to DataSet.

LINQ-lekérdezés felépítése

A LINQ-lekérdezések, amelyeket gyakran lekérdezési kifejezésnek is neveznek, lekérdezési záradékok kombinációjából állnak, amelyek azonosítják a lekérdezés adatforrásait és iterációs változóit. A lekérdezési kifejezések tartalmazhatnak rendezési, szűrési, csoportosítási és illesztési utasításokat, illetve a forrásadatokra alkalmazandó számításokat is. A lekérdezési kifejezés szintaxisa hasonlít az SQL szintaxisára; ezért a szintaxis nagy részét ismerősnek találhatja.

A lekérdezési kifejezés egy From záradékkal kezdődik. Ez a záradék azonosítja a lekérdezés forrásadatait, valamint azokat a változókat, amelyek a forrásadatok egyes elemeire külön-külön hivatkoznak. Ezek a változók nevesített tartományváltozók vagy iterációs változók. A From záradék egy lekérdezéshez szükséges, kivéve azokat a Aggregate lekérdezéseket, ahol a From záradék nem kötelező. Miután azonosította a lekérdezés hatókörét és forrását a FromAggregate záradékokban, a lekérdezés finomításához a lekérdezési záradékok tetszőleges kombinációját is belefoglalhatja. A lekérdezési záradékokkal kapcsolatos részletekért tekintse meg a jelen témakör későbbi, Visual Basic LINQ lekérdezési operátorait. Az alábbi lekérdezés például az ügyféladatok forrásgyűjteményét azonosítja változókéntcustomers, és egy iterációs változót.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

Ez a példa önmagában egy érvényes lekérdezés; A lekérdezés azonban sokkal hatékonyabb lesz, ha további lekérdezési záradékokat ad hozzá az eredmény finomításához. Hozzáadhat például egy záradékot Where , amely egy vagy több érték alapján szűri az eredményt. A lekérdezési kifejezések egyetlen kódsort jelentenek; Egyszerűen hozzáfűzhet további lekérdezési záradékokat a lekérdezés végéhez. A lekérdezéseket több sornyi szövegre bontva javíthatja az olvashatóságot az aláhúzásjel (_) sorfolytatási karakterrel. Az alábbi példakód egy záradékot tartalmazó Where lekérdezésre mutat be példát.

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

Egy másik hatékony lekérdezési záradék a Select záradék, amely lehetővé teszi, hogy csak a kijelölt mezőket adja vissza az adatforrásból. A LINQ-lekérdezések az erősen beírt objektumok enumerálható gyűjteményeit adják vissza. A lekérdezések névtelen vagy névvel ellátott típusok gyűjteményét is visszaadhatják. A záradék használatával Select csak egyetlen mezőt adhat vissza az adatforrásból. Ha ezt teszi, a visszaadott gyűjtemény típusa az adott mező típusa. A záradék használatával Select több mezőt is visszaadhat az adatforrásból. Ha ezt teszi, a visszaadott gyűjtemény típusa egy új névtelen típus. A lekérdezés által visszaadott mezőket egyeztetheti egy megadott névvel ellátott típus mezőivel is. Az alábbi példakód egy olyan lekérdezési kifejezést mutat be, amely névtelen típusok gyűjteményét adja vissza, amelyek tagjai az adatforrás kiválasztott mezőiből származó adatokkal vannak feltöltve.

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

A LINQ-lekérdezések több adatforrás kombinálására és egyetlen eredmény visszaadására is használhatók. Ez egy vagy több From záradékkal, vagy a lekérdezési JoinGroup Join záradékokkal is elvégezhető. Az alábbi példakód egy olyan lekérdezési kifejezést mutat be, amely egyesíti az ügyfelek és a rendelések adatait, és névtelen típusú, ügyfél- és rendelésadatokat tartalmazó gyűjteményt ad vissza.

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.

A Group Join záradék használatával létrehozhat egy hierarchikus lekérdezési eredményt, amely ügyfélobjektum-gyűjteményt tartalmaz. Minden ügyfélobjektum rendelkezik egy tulajdonságmal, amely az adott ügyfélhez tartozó összes rendelés gyűjteményét tartalmazza. Az alábbi példakód egy olyan lekérdezési kifejezést mutat be, amely hierarchikus eredményként egyesíti az ügyfél- és rendelési adatokat, és névtelen típusok gyűjteményét adja vissza. A lekérdezés olyan típust ad vissza, amely olyan tulajdonságot CustomerOrders tartalmaz, amely az ügyfél rendelési adatainak gyűjteményét tartalmazza. Tartalmaz egy tulajdonságot OrderTotal is, amely az adott ügyfél összes rendelésének összegét tartalmazza. (Ez a lekérdezés egyenértékű a BAL OLDALI KÜLSŐ ILLESZTÉS lekérdezéssel.)

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

Számos további LINQ-lekérdezési operátor is használható hatékony lekérdezési kifejezések létrehozásához. A témakör következő szakasza a lekérdezési kifejezésekben felvehető különböző lekérdezési záradékokat ismerteti. A Visual Basic lekérdezési záradékairól további információt a Lekérdezések című témakörben talál.

Visual Basic LINQ lekérdezési operátorok

A névtér osztályai System.Linq és a LINQ-lekérdezéseket támogató egyéb névterek olyan metódusokat tartalmaznak, amelyeket meghívhat a lekérdezések létrehozásához és finomításához az alkalmazás igényei alapján. A Visual Basic a következő gyakori lekérdezési záradékok kulcsszavait tartalmazza. A Visual Basic lekérdezési záradékairól további információt a Lekérdezések című témakörben talál.

Feladó záradék

From A lekérdezés megkezdéséhez záradékra vagy Aggregate záradékra van szükség. A From záradék egy forrásgyűjteményt és egy iterációs változót határoz meg egy lekérdezéshez. Példa:

' 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

Záradék kiválasztása

Opcionális. A Select záradék iterációs változók készletét deklarálja egy lekérdezéshez. Példa:

' 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

Ha nincs megadva záradékSelect, a lekérdezés iterációs változói a vagy Aggregate záradék által From megadott iterációs változókból állnak.

Hol található záradék

Opcionális. A Where záradék egy lekérdezés szűrési feltételét adja meg. Példa:

' 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

Order By záradék

Opcionális. A Order By záradék a lekérdezés oszlopainak rendezési sorrendjét határozza meg. Példa:

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

Csatlakozás záradék

Opcionális. A Join záradék két gyűjteményt egyesít egyetlen gyűjteménybe. Példa:

' 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

Csoportosítási záradék

Opcionális. A Group By záradék egy lekérdezési eredmény elemeit csoportosítja. Az összesítő függvények minden csoportra alkalmazhatók. Példa:

' 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

Csoportosítási záradék

Opcionális. A Group Join záradék két gyűjteményt egyesít egyetlen hierarchikus gyűjteményben. Példa:

' 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

Összesítő záradék

Aggregate A lekérdezés megkezdéséhez záradékra vagy From záradékra van szükség. Egy Aggregate záradék egy vagy több összesítő függvényt alkalmaz egy gyűjteményre. A záradék használatával Aggregate például kiszámíthatja a lekérdezés által visszaadott összes elem összegét, ahogyan az alábbi példában is látható.

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

A záradék használatával Aggregate is módosíthatja a lekérdezést. A záradék használatával Aggregate például számítást végezhet egy kapcsolódó lekérdezéscsoporton. Példa:

' 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 záradék

Opcionális. A Let záradék kiszámít egy értéket, és hozzárendeli egy új változóhoz a lekérdezésben. Példa:

' 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

Eltérő záradék

Opcionális. A Distinct záradék az aktuális iterációs változó értékeit korlátozza a lekérdezési eredmények ismétlődő értékeinek kiküszöbölése érdekében. Példa:

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

Záradék kihagyása

Opcionális. A Skip záradék megadott számú elemet ad át egy gyűjteményben, majd visszaadja a fennmaradó elemeket. Példa:

' 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 záradék

Opcionális. A Skip While záradék a gyűjtemény elemeit adja át, amíg egy adott feltétel teljesül true , majd visszaadja a fennmaradó elemeket. Példa:

' 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 záradék

Opcionális. A Take záradék megadott számú összefüggő elemet ad vissza a gyűjtemény kezdetétől kezdve. Példa:

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

Take While záradék

Opcionális. A Take While záradék a gyűjtemény elemeit tartalmazza mindaddig, amíg egy adott feltétel teljesül true , és a fennmaradó elemeket átadja. Példa:

' 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)

További LINQ-lekérdezési funkciók használata

További LINQ-lekérdezési funkciókat is használhat, ha meghívja a LINQ által biztosított számba vehető és lekérdezhető típusok tagjait. Ezeket a további képességeket úgy használhatja, ha egy lekérdezési kifejezés eredménye alapján meghív egy adott lekérdezési operátort. Az alábbi példa például két Enumerable.Union lekérdezés eredményeit egy lekérdezés eredményébe egyesíti. A metódussal Enumerable.ToList általános listaként adja vissza a lekérdezés eredményét.

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

A további LINQ-funkciókkal kapcsolatos részletekért tekintse meg a standard lekérdezési operátorok áttekintését.

Csatlakozás adatbázisba a LINQ és az SQL használatával

A Visual Basicben azonosítja az SQL Server adatbázis-objektumait, például táblákat, nézeteket és tárolt eljárásokat, amelyeket LINQ-ból SQL-fájlba szeretne elérni. A LINQ-ről SQL-fájlra a .dbml kiterjesztéssel rendelkezik.

Ha érvényes kapcsolattal rendelkezik egy SQL Server-adatbázissal, hozzáadhat egy LINQ-t az SQL-osztályok elemsablonjához a projekthez. Ekkor megjelenik az Objektumrelációs Tervező (O/R tervező). Az O/R Tervező lehetővé teszi, hogy a kódban elérni kívánt elemeket a Kiszolgálókezelő/Adatbázis-kezelőből a tervezőfelületre húzza. A LINQ to SQL-fájl egy objektumot DataContext ad hozzá a projekthez. Ez az objektum tartalmazza a használni kívánt táblák és nézetek tulajdonságait és gyűjteményeit, valamint a meghívni kívánt tárolt eljárások metódusait. Miután mentette a LINQ to SQL (.dbml) fájl módosításait, az O/R Tervező által definiált objektumra hivatkozva DataContext elérheti ezeket az objektumokat a kódban. A DataContext projekt objektuma a LINQ–SQL-fájl neve alapján lesz elnevezve. Egy Northwind.dbml nevű LINQ–SQL-fájl például létrehoz egy DataContext objektumot NorthwindDataContext.

Példák a részletes utasításokra: Útmutató: Adatbázis lekérdezése és útmutató: Tárolt eljárás meghívása.

A LINQ-t támogató Visual Basic-funkciók

A Visual Basic más jelentős funkciókat is tartalmaz, amelyek megkönnyítik a LINQ használatát, és csökkentik a LINQ-lekérdezések végrehajtásához szükséges kód mennyiségét. Ezek a következők:

  • Névtelen típusok, amelyek lehetővé teszik, hogy lekérdezési eredmény alapján új típust hozzon létre.

  • Implicit módon beírt változók, amelyek lehetővé teszik egy típus megadásának elhalasztását, és lehetővé teszik, hogy a fordító a lekérdezés eredménye alapján következtethessen a típusra.

  • Bővítménymetelyek, amelyek lehetővé teszik, hogy a meglévő típust a saját metódusaival bővítse anélkül, hogy módosítaná a típust.

További részletekért lásd a LINQ-t támogató Visual Basic-szolgáltatásokat.

Halasztott és azonnali lekérdezésvégrehajtás

A lekérdezés végrehajtása nem egy lekérdezés létrehozása. A lekérdezés létrehozása után a végrehajtást egy külön mechanizmus aktiválja. A lekérdezések a definiálás után azonnal végrehajthatók (azonnali végrehajtás), vagy a definíció tárolható, és a lekérdezés később is végrehajtható (halasztott végrehajtás).

A lekérdezés létrehozásakor alapértelmezés szerint maga a lekérdezés nem fut azonnal. Ehelyett a lekérdezésdefiníció abban a változóban van tárolva, amely a lekérdezés eredményére hivatkozik. Ha a lekérdezés eredményváltozóját később, például egy For…Next ciklusban érik el, a rendszer végrehajtja a lekérdezést. Ezt a folyamatot halasztott végrehajtásnak nevezzük.

A lekérdezések a definiálásukkor is végrehajthatók, amelyet azonnali végrehajtásnak neveznek. Azonnali végrehajtást egy olyan metódus alkalmazásával indíthat el, amely hozzáférést igényel a lekérdezés eredményének egyes elemeihez. Ennek eredménye lehet egy összesítő függvény, például Count, Sum, Average, Minvagy Max. Az összesítő függvényekkel kapcsolatos további információkért lásd az Összesítési záradékot.

A vagy ToArray metódusok ToList használata azonnali végrehajtást is kényszerít. Ez akkor lehet hasznos, ha azonnal végre szeretné hajtani a lekérdezést, és gyorsítótárba szeretné helyezni az eredményeket. További információ ezekről a módszerekről: Adattípusok konvertálása.

A lekérdezések végrehajtásával kapcsolatos további információkért lásd : Az első LINQ-lekérdezés írása.

XML a Visual Basicben

A Visual Basic XML-funkciói közé tartoznak az XML-literálok és az XML-tengely tulajdonságai, amelyek lehetővé teszik az XML-fájlok egyszerű létrehozását, elérését, lekérdezését és módosítását a kódban. Az XML-literálok lehetővé teszik az XML közvetlen írását a kódban. A Visual Basic fordító első osztályú adatobjektumként kezeli az XML-t.

Az alábbi példakód bemutatja, hogyan hozhat létre XML-elemet, férhet hozzá az alelemekhez és attribútumokhoz, és hogyan kérdezheti le az elem tartalmát a LINQ használatával.

' 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

További információ: XML.

Téma Leírás
XML A Visual Basic azon XML-funkcióit ismerteti, amelyek lekérdezhetők, és amelyek lehetővé teszik az XML első osztályú adatobjektumokként való hozzáadását a Visual Basic-kódban.
Lekérdezések Referenciainformációkat tartalmaz a Visual Basicben elérhető lekérdezési záradékokról.
LINQ (nyelvvel integrált lekérdezés) Általános információkat, programozási útmutatást és mintákat tartalmaz a LINQ-hoz.
LINQ–SQL Általános információkat, programozási útmutatókat és mintákat tartalmaz a LINQ-ról SQL-hez.
LINQ az objektumokhoz Általános információkat, programozási útmutatókat és mintákat tartalmaz a LINQ-objektumokhoz.
LINQ–ADO.NET (portáloldal) Hivatkozásokat tartalmaz az általános információkra, programozási útmutatókra és mintákra a LINQ-hoz ADO.NET.
LINQ–XML Általános információkat, programozási útmutatókat és mintákat tartalmaz a LINQ-ról XML-hez.

Útmutató és útmutató témakörökhöz

Útmutató: Adatbázis lekérdezése

Útmutató: Tárolt eljárás meghívása

Útmutató: Adatok módosítása egy adatbázisban

Útmutató: Adatok kombinálása illesztésekkel

Útmutató: Lekérdezési eredmények rendezése

Útmutató: Lekérdezési eredmények szűrése

Útmutató: Adatok száma, összege vagy átlaga

Útmutató: A lekérdezés eredményének minimális vagy maximális értékének megkeresése

Útmutató: Tárolt eljárások hozzárendelése frissítések, beszúrások és törlések végrehajtásához (O/R Tervező)

17. fejezet: LINQ a Visual Basic 2008 programozásában

Lásd még