Wprowadzenie do LINQ w Visual Basic
Zapytanie zintegrowane z językiem (LINQ) dodaje możliwości zapytań do języka Visual Basic i zapewnia proste i zaawansowane możliwości podczas pracy z wszystkimi rodzajami danych. Zamiast wysyłać zapytanie do bazy danych do przetworzenia lub pracować z inną składnią zapytań dla każdego typu wyszukiwanych danych, LINQ wprowadza zapytania w ramach języka Visual Basic. Używa ujednoliconej składni niezależnie od typu danych.
LINQ umożliwia wykonywanie zapytań dotyczących danych z bazy danych programu SQL Server, xml, tablic i kolekcji w pamięci, zestawów danych ADO.NET lub innych zdalnych lub lokalnych źródeł danych obsługujących linQ. Można to zrobić za pomocą typowych elementów języka Visual Basic. Ponieważ zapytania są pisane w języku Visual Basic, wyniki zapytania są zwracane jako silnie typizowane obiekty. Te obiekty obsługują funkcję IntelliSense, która umożliwia szybsze pisanie kodu i przechwytywanie błędów w zapytaniach w czasie kompilacji zamiast w czasie wykonywania. Zapytania LINQ mogą służyć jako źródło dodatkowych zapytań w celu uściślania wyników. Można je również powiązać z kontrolkami, aby użytkownicy mogli łatwo wyświetlać i modyfikować wyniki zapytania.
Na przykład poniższy przykład kodu przedstawia zapytanie LINQ, które zwraca listę klientów z kolekcji i grupuje je na podstawie ich lokalizacji.
' 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
Uruchamianie przykładów
Aby uruchomić przykłady we wprowadzeniu i w sekcji Struktura zapytania LINQ, dołącz następujący kod, który zwraca listy klientów i zamówień.
' 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
Dostawcy LINQ
Dostawca LINQ mapuje zapytania LINQ języka Visual Basic na badane źródło danych. Podczas pisania zapytania LINQ dostawca przyjmuje to zapytanie i tłumaczy je na polecenia, które źródło danych będzie mogło wykonać. Dostawca konwertuje również dane ze źródła na obiekty, które tworzą wynik zapytania. Na koniec konwertuje obiekty na dane podczas wysyłania aktualizacji do źródła danych.
Program Visual Basic obejmuje następujących dostawców LINQ.
Dostawca | opis |
---|---|
LINQ do obiektów | Dostawca LINQ to Objects umożliwia wykonywanie zapytań dotyczących kolekcji i tablic w pamięci. Jeśli obiekt obsługuje IEnumerable interfejs lub IEnumerable<T> , dostawca LINQ to Objects umożliwia wykonywanie względem niego zapytań. Możesz włączyć dostawcę LINQ to Objects, importując System.Linq przestrzeń nazw, która jest domyślnie importowana dla wszystkich projektów języka Visual Basic. Aby uzyskać więcej informacji na temat dostawcy LINQ to Objects, zobacz LINQ to Objects (LINQ to Objects). |
LINQ to SQL | Dostawca LINQ to SQL umożliwia wykonywanie zapytań i modyfikowanie danych w bazie danych programu SQL Server. Ułatwia to mapowania modelu obiektów dla aplikacji na tabele i obiekty w bazie danych. Język Visual Basic ułatwia pracę z linQ to SQL przez uwzględnienie Projektant relacyjnych obiektów (O/R Projektant). Ten projektant służy do tworzenia modelu obiektów w aplikacji mapowania na obiekty w bazie danych. Projektant O/R udostępnia również funkcje mapowania procedur składowanych i funkcji na DataContext obiekt, który zarządza komunikacją z bazą danych i przechowuje stan na potrzeby optymistycznych testów współbieżności. Aby uzyskać więcej informacji na temat dostawcy LINQ to SQL, zobacz LINQ to SQL. Aby uzyskać więcej informacji na temat Projektant relacyjnych obiektów, zobacz LINQ to SQL Tools w programie Visual Studio. |
LINQ to XML | Dostawca LINQ to XML umożliwia wykonywanie zapytań i modyfikowanie kodu XML. Możesz zmodyfikować kod XML w pamięci lub załadować kod XML z pliku i zapisać go w pliku. Ponadto dostawca LINQ to XML umożliwia literały XML i właściwości osi XML, które umożliwiają pisanie kodu XML bezpośrednio w kodzie Języka Visual Basic. Aby uzyskać więcej informacji, zobacz XML. |
LINQ to DataSet | Dostawca LINQ to DataSet umożliwia wykonywanie zapytań i aktualizowanie danych w zestawie danych ADO.NET. Możesz dodać możliwości LINQ do aplikacji korzystających z zestawów danych, aby uprościć i rozszerzyć możliwości wykonywania zapytań, agregowania i aktualizowania danych w zestawie danych. Aby uzyskać więcej informacji, zobacz LINQ to DataSet. |
Struktura zapytania LINQ
Zapytanie LINQ, często nazywane wyrażeniem zapytania, składa się z kombinacji klauzul zapytania, które identyfikują źródła danych i zmienne iteracji zapytania. Wyrażenie zapytania może również zawierać instrukcje dotyczące sortowania, filtrowania, grupowania i łączenia lub obliczeń, które mają być stosowane do danych źródłowych. Składnia wyrażenia zapytania przypomina składnię języka SQL; w związku z tym można znaleźć wiele znanych składni.
Wyrażenie zapytania rozpoczyna się od klauzuli From
. Ta klauzula identyfikuje dane źródłowe zapytania i zmienne, które są używane do odwoływania się do każdego elementu danych źródłowych indywidualnie. Te zmienne są nazwane zmiennymi zakresu lub zmiennymi iteracji. Klauzula jest wymagana From
dla zapytania, z wyjątkiem Aggregate
zapytań, gdzie klauzula jest opcjonalna From
. Po zidentyfikowaniu zakresu i źródła zapytania w From
klauzulach or Aggregate
można uwzględnić dowolną kombinację klauzul zapytania w celu uściślenia zapytania. Aby uzyskać szczegółowe informacje o klauzulach zapytania, zobacz Visual Basic LINQ Query Operators w dalszej części tego tematu. Na przykład następujące zapytanie identyfikuje źródłową kolekcję danych klienta jako customers
zmienną, a zmienną iteracji o nazwie 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
Ten przykład jest prawidłowym zapytaniem. jednak zapytanie staje się znacznie bardziej zaawansowane, gdy dodasz więcej klauzul zapytania, aby uściślić wynik. Możesz na przykład dodać klauzulę Where
, aby filtrować wynik według co najmniej jednej wartości. Wyrażenia zapytania są pojedynczym wierszem kodu; Możesz po prostu dołączyć dodatkowe klauzule zapytania na końcu zapytania. Zapytanie można podzielić na wiele wierszy tekstu, aby zwiększyć czytelność, używając znaku kontynuacji wiersza podkreślenia (_). Poniższy przykład kodu przedstawia przykład zapytania zawierającego klauzulę Where
.
Dim queryResults = From cust In customers
Where cust.Country = "Canada"
Kolejną zaawansowaną klauzulą zapytania jest klauzula Select
, która umożliwia zwracanie tylko wybranych pól ze źródła danych. Zapytania LINQ zwracają wyliczalne kolekcje silnie typiowanych obiektów. Zapytanie może zwrócić kolekcję typów anonimowych lub nazwanych typów. Możesz użyć klauzuli Select
, aby zwrócić tylko jedno pole ze źródła danych. Gdy to zrobisz, zwracany typ kolekcji jest typem tego pojedynczego pola. Możesz również użyć klauzuli Select
, aby zwrócić wiele pól ze źródła danych. W takim przypadku zwracany typ kolekcji jest nowym typem anonimowym. Możesz również dopasować pola zwracane przez zapytanie do pól określonego nazwanego typu. Poniższy przykład kodu przedstawia wyrażenie zapytania zwracające kolekcję typów anonimowych, które mają elementy członkowskie wypełnione danymi z wybranych pól ze źródła danych.
Dim queryResults = From cust In customers
Where cust.Country = "Canada"
Select cust.CompanyName, cust.Country
Zapytania LINQ mogą również służyć do łączenia wielu źródeł danych i zwracania jednego wyniku. Można to zrobić za pomocą co najmniej jednej From
klauzuli lub przy użyciu Join
klauzul lub Group Join
zapytania. Poniższy przykład kodu przedstawia wyrażenie zapytania, które łączy dane klienta i zamówienia oraz zwraca kolekcję typów anonimowych zawierających dane klienta i zamówienia.
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.
Klauzulę Group Join
można użyć do utworzenia hierarchicznego wyniku zapytania zawierającego kolekcję obiektów klienta. Każdy obiekt klienta ma właściwość zawierającą kolekcję wszystkich zamówień dla tego klienta. Poniższy przykład kodu przedstawia wyrażenie zapytania, które łączy dane klienta i zamówienia jako wynik hierarchiczny i zwraca kolekcję typów anonimowych. Zapytanie zwraca typ, który zawiera CustomerOrders
właściwość zawierającą kolekcję danych zamówienia dla klienta. Zawiera również właściwość zawierającą sumę OrderTotal
sum dla wszystkich zamówień dla tego klienta. (To zapytanie jest równoważne lewemu sprzężeniu ZEWNĘTRZNEmu).
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
Istnieje kilka dodatkowych operatorów zapytań LINQ, których można użyć do tworzenia zaawansowanych wyrażeń zapytań. W następnej sekcji tego tematu omówiono różne klauzule zapytania, które można uwzględnić w wyrażeniu zapytania. Aby uzyskać szczegółowe informacje na temat klauzul zapytań języka Visual Basic, zobacz Zapytania.
Operatory zapytań LINQ języka Visual Basic
Klasy w System.Linq przestrzeni nazw i innych przestrzeniach nazw, które obsługują zapytania LINQ, obejmują metody, które można wywołać w celu tworzenia i uściślenia zapytań na podstawie potrzeb aplikacji. Visual Basic zawiera słowa kluczowe dla następujących typowych klauzul zapytania. Aby uzyskać szczegółowe informacje na temat klauzul zapytań języka Visual Basic, zobacz Zapytania.
Klauzula From
Do rozpoczęcia zapytania jest wymagana klauzula From
Aggregate
lub klauzula. Klauzula określa From
kolekcję źródłową i zmienną iteracji dla zapytania. Na przykład:
' 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 — Klauzula
Opcjonalny. Klauzula Select
deklaruje zestaw zmiennych iteracji dla zapytania. Na przykład:
' 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
Jeśli klauzula Select
nie zostanie określona, zmienne iteracji zapytania składają się ze zmiennych iteracji określonych przez klauzulę From
or Aggregate
.
Klauzula Where
Opcjonalny. Klauzula określa Where
warunek filtrowania zapytania. Na przykład:
' 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, klauzula
Opcjonalny. Klauzula Order By
określa kolejność sortowania kolumn w zapytaniu. Na przykład:
' Returns a list of books sorted by price in
' ascending order.
Dim titlesAscendingPrice = From b In books
Order By b.price
Join — Klauzula
Opcjonalny. Klauzula A Join
łączy dwie kolekcje w jedną kolekcję. Na przykład:
' 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 — Klauzula
Opcjonalny. Klauzula Group By
grupuje elementy wyniku zapytania. Może służyć do stosowania funkcji agregujących do każdej grupy. Na przykład:
' 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 — Klauzula
Opcjonalny. Klauzula łączy Group Join
dwie kolekcje w jedną hierarchiczną kolekcję. Na przykład:
' 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 — Klauzula
Do rozpoczęcia zapytania jest wymagana klauzula Aggregate
From
lub klauzula. Klauzula Aggregate
stosuje co najmniej jedną funkcję agregacji do kolekcji. Na przykład możesz użyć klauzuli Aggregate
, aby obliczyć sumę dla wszystkich elementów zwracanych przez zapytanie, jak w poniższym przykładzie.
' Returns the sum of all order amounts.
Dim orderTotal = Aggregate order In orders
Into Sum(order.Amount)
Możesz również użyć klauzuli Aggregate
, aby zmodyfikować zapytanie. Na przykład możesz użyć klauzuli Aggregate
, aby wykonać obliczenia w powiązanej kolekcji zapytań. Na przykład:
' 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 — Klauzula
Opcjonalny. Klauzula Let
oblicza wartość i przypisuje ją do nowej zmiennej w zapytaniu. Na przykład:
' 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 — Klauzula
Opcjonalny. Klauzula Distinct
ogranicza wartości bieżącej zmiennej iteracji, aby wyeliminować zduplikowane wartości w wynikach zapytania. Na przykład:
' Returns a list of cities with no duplicate entries.
Dim cities = From item In customers
Select item.City
Distinct
Skip — Klauzula
Opcjonalny. Klauzula Skip
pomija określoną liczbę elementów w kolekcji, a następnie zwraca pozostałe elementy. Na przykład:
' 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 — Klauzula
Opcjonalny. Klauzula Skip While
pomija elementy w kolekcji tak długo, jak określony warunek jesttrue
, a następnie zwraca pozostałe elementy. Na przykład:
' 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 — Klauzula
Opcjonalny. Klauzula zwraca Take
określoną liczbę ciągłych elementów od początku kolekcji. Na przykład:
' Returns the first 10 customers.
Dim customerList = From cust In customers
Take 10
Take While — Klauzula
Opcjonalny. Klauzula Take While
zawiera elementy w kolekcji, o ile określony warunek jest true
i pomija pozostałe elementy. Na przykład:
' 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)
Korzystanie z dodatkowych funkcji zapytań LINQ
Możesz użyć dodatkowych funkcji zapytań LINQ, wywołując elementy członkowskie typów wyliczalnych i z możliwością wykonywania zapytań udostępnianych przez LINQ. Możesz użyć tych dodatkowych możliwości, wywołując określony operator zapytania w wyniku wyrażenia zapytania. Na przykład w poniższym przykładzie użyto Enumerable.Union metody , aby połączyć wyniki dwóch zapytań w jeden wynik zapytania. Używa Enumerable.ToList metody , aby zwrócić wynik zapytania jako listę ogólną.
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
Aby uzyskać szczegółowe informacje na temat dodatkowych funkcji LINQ, zobacz Standardowe operatory zapytań — omówienie.
Połączenie do bazy danych przy użyciu linQ to SQL
W języku Visual Basic identyfikujesz obiekty bazy danych programu SQL Server, takie jak tabele, widoki i procedury składowane, do których chcesz uzyskać dostęp przy użyciu pliku LINQ to SQL. Plik LINQ to SQL ma rozszerzenie .dbml.
Jeśli masz prawidłowe połączenie z bazą danych programu SQL Server, możesz dodać szablon elementu LINQ to SQL Classes do projektu. Spowoduje to wyświetlenie Projektant relacyjnych obiektów (projektantA O/R). Projektant O/R umożliwia przeciąganie elementów, do których chcesz uzyskać dostęp w kodzie z Eksploratora bazy danych Eksploratora/ serwera na powierzchni projektanta. Plik LINQ to SQL dodaje DataContext obiekt do projektu. Ten obiekt zawiera właściwości i kolekcje dla tabel i widoków, do których chcesz uzyskać dostęp, oraz metody procedur składowanych, które chcesz wywołać. Po zapisaniu zmian w pliku LINQ to SQL (dbml) można uzyskać dostęp do tych obiektów w kodzie, odwołując DataContext się do obiektu zdefiniowanego przez Projektant O/R. DataContext Obiekt projektu jest nazwany na podstawie nazwy pliku LINQ to SQL. Na przykład plik LINQ to SQL o nazwie Northwind.dbml utworzy DataContext obiekt o nazwie NorthwindDataContext
.
Przykłady z instrukcjami krok po kroku znajdują się w temacie Instrukcje: wykonywanie zapytań dotyczących bazy danych i Instrukcje: wywoływanie procedury składowanej.
Funkcje języka Visual Basic, które obsługują LINQ
Język Visual Basic zawiera inne istotne funkcje, które ułatwiają korzystanie z linQ i zmniejszają ilość kodu, który należy napisać w celu wykonywania zapytań LINQ. Należą do nich następujące funkcje:
Typy anonimowe, które umożliwiają utworzenie nowego typu na podstawie wyniku zapytania.
Niejawnie wpisane zmienne, które umożliwiają odroczenie określania typu i umożliwienie kompilatorowi wnioskowania typu na podstawie wyniku zapytania.
Metody rozszerzeń, które umożliwiają rozszerzenie istniejącego typu przy użyciu własnych metod bez modyfikowania samego typu.
Aby uzyskać szczegółowe informacje, zobacz Visual Basic Features that support LINQ (Funkcje języka Visual Basic, które obsługują linq).
Odroczone i natychmiastowe wykonywanie zapytań
Wykonywanie zapytania jest oddzielone od tworzenia zapytania. Po utworzeniu zapytania jego wykonanie jest wyzwalane przez oddzielny mechanizm. Zapytanie można wykonać natychmiast po zdefiniowaniu (natychmiastowe wykonanie) lub przechowywać definicję, a zapytanie można wykonać później (odroczone wykonanie).
Domyślnie podczas tworzenia zapytania samo zapytanie nie jest wykonywane natychmiast. Zamiast tego definicja zapytania jest przechowywana w zmiennej używanej do odwoływanie się do wyniku zapytania. Gdy zmienna wynikowa zapytania jest uzyskiwana w dalszej części kodu, na przykład w For…Next
pętli, zapytanie jest wykonywane. Ten proces jest nazywany odroczonym wykonaniem.
Zapytania można również wykonywać, gdy są zdefiniowane, co jest określane jako natychmiastowe wykonywanie. Natychmiastowe wykonanie można wyzwolić, stosując metodę, która wymaga dostępu do poszczególnych elementów wyniku zapytania. Może to być wynik dołączania funkcji agregującej, takiej jak Count
, , Average
Sum
, Min
lub Max
. Aby uzyskać więcej informacji na temat funkcji agregujących, zobacz Klauzula agregacji.
ToList
Użycie metod lub ToArray
spowoduje również wymusi natychmiastowe wykonanie. Może to być przydatne, gdy chcesz natychmiast wykonać zapytanie i zapisać wyniki w pamięci podręcznej. Aby uzyskać więcej informacji na temat tych metod, zobacz Konwertowanie typów danych.
Aby uzyskać więcej informacji na temat wykonywania zapytań, zobacz Pisanie pierwszego zapytania LINQ.
XML w Visual Basic
Funkcje XML w języku Visual Basic obejmują literały XML i właściwości osi XML, które umożliwiają łatwe tworzenie, uzyskiwanie dostępu, wykonywanie zapytań i modyfikowanie kodu XML w kodzie. Literały XML umożliwiają pisanie kodu XML bezpośrednio w kodzie. Kompilator języka Visual Basic traktuje kod XML jako obiekt danych pierwszej klasy.
Poniższy przykład kodu przedstawia sposób tworzenia elementu XML, uzyskiwania dostępu do jego podelementów i atrybutów oraz wykonywania zapytań dotyczących zawartości elementu przy użyciu 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
Aby uzyskać więcej informacji, zobacz XML.
Powiązane zasoby
Temat | opis |
---|---|
XML | W tym artykule opisano funkcje XML w języku Visual Basic, których można wykonywać zapytania i które umożliwiają dołączanie kodu XML jako obiektów danych pierwszej klasy w kodzie Visual Basic. |
Zapytania | Zawiera informacje referencyjne dotyczące klauzul zapytania, które są dostępne w Visual Basic. |
LINQ (zapytanie zintegrowane z językiem) | Zawiera ogólne informacje, wskazówki dotyczące programowania i przykłady dla LINQ. |
LINQ to SQL | Zawiera ogólne informacje, wskazówki dotyczące programowania i przykłady dotyczące linQ to SQL. |
LINQ to Objects | Zawiera ogólne informacje, wskazówki dotyczące programowania i przykłady dla obiektów LINQ to Objects. |
LINQ to ADO.NET (strona portalu) | Zawiera linki do ogólnych informacji, wskazówek dotyczących programowania i przykładów dla linQ to ADO.NET. |
LINQ to XML | Zawiera ogólne informacje, wskazówki dotyczące programowania i przykłady dla LINQ to XML. |
Instrukcje i tematy z przewodnikami
Instrukcje: wykonywanie zapytań względem bazy danych
Instrukcje: wywoływanie procedury składowanej
Instrukcje: modyfikowanie danych w bazie danych
Instrukcje: łączenie danych ze sprzężeniami
Instrukcje: sortowanie wyników zapytania
Instrukcje: filtrowanie wyników zapytania
Instrukcje: liczba, suma lub średnie dane
Instrukcje: znajdowanie wartości minimalnej lub maksymalnej w wyniku zapytania
Polecane rozdziały książek
Rozdział 17: LINQ in Programming Visual Basic 2008 (Rozdział 17: LINQ in Programming Visual Basic 2008)