Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Language-Integrated Query (LINQ) dodaje możliwości zapytań do języka Visual Basic i udostępnia proste i zaawansowane funkcje 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 to Objects | 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 mapowanie modelu obiektów aplikacji na tabele oraz obiekty w bazie danych. Język Visual Basic ułatwia pracę z językiem LINQ to SQL przez dołączenie projektanta relacyjnego obiektów (O/R Designer). Ten projektant służy do tworzenia modelu obiektowego w aplikacji, który odpowiada obiektom w bazie danych. Projektant O/R udostępnia również funkcjonalność mapowania procedur przechowywanych i funkcji na DataContext obiekt, który zarządza komunikacją z bazą danych i przechowuje stan na potrzeby optymistycznej kontroli 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 projektanta relacyjnego obiektów, zobacz LINQ to SQL Tools in Visual Studio (Narzędzia 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 From
jest wymagana dla zapytania, z wyjątkiem zapytań Aggregate
, gdzie klauzula From
jest opcjonalna. Po zidentyfikowaniu zakresu i źródła zapytania w klauzulach From
lub 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 podkreślenia jako znaku kontynuacji wiersza. 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, które zwraca kolekcję typów anonimowych z członkami wypełnionymi danymi z wybranych pól ź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ą jednej lub więcej From
klauzuli, lub przy użyciu Join
klauzuli zapytania lub Group Join
klauzuli 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 posiada CustomerOrders
właściwość obejmującą kolekcję danych zamówienia dla klienta. Zawiera również właściwość, która zawiera sumę wszystkich kwot 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 klauzulaFrom
Aggregate
lub klauzula. Klauzula określa From
kolekcję źródłową i zmienną iteracji dla zapytania. 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
Klauzula Select
Opcjonalny.
KlauzulaSelect
deklaruje zestaw zmiennych iteracji dla zapytania. 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ślaWhere
warunek filtrowania zapytania. 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
Klauzula ORDER BY
Opcjonalny.
KlauzulaOrder By
określa kolejność sortowania kolumn w zapytaniu. Przykład:
' Returns a list of books sorted by price in
' ascending order.
Dim titlesAscendingPrice = From b In books
Order By b.price
Klauzula Join
Opcjonalny.
KlauzulaJoin
łączy dwie kolekcje w jedną. 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
klauzula GROUP BY
Opcjonalny.
KlauzulaGroup By
grupuje elementy wyniku zapytania. Może służyć do stosowania funkcji agregujących do każdej grupy. 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
klauzula łączenia grup
Opcjonalny.
Klauzula łączyGroup Join
dwie kolekcje w jedną hierarchiczną kolekcję. 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
Klauzula agregacji
Do rozpoczęcia zapytania wymagana jest klauzula Aggregate
albo From
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ń. 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.
KlauzulaLet
oblicza wartość i przypisuje ją do nowej zmiennej w zapytaniu. 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
Odrębna klauzula
Opcjonalny. Klauzula Distinct
ogranicza wartości bieżącej zmiennej iteracji, aby wyeliminować zduplikowane wartości w wynikach zapytania. Przykład:
' Returns a list of cities with no duplicate entries.
Dim cities = From item In customers
Select item.City
Distinct
Pomiń klauzulę
Opcjonalny.
KlauzulaSkip
pomija określoną liczbę elementów w kolekcji, a następnie zwraca pozostałe elementy. 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
Pominięcie klauzuli While
Opcjonalny.
KlauzulaSkip While
pomija elementy w kolekcji, dopóki określony warunek jest spełnionytrue
, a następnie zwraca resztę elementów. 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)
Weź klauzulę
Opcjonalny.
Klauzula zwracaTake
określoną liczbę ciągłych elementów od początku kolekcji. Przykład:
' Returns the first 10 customers.
Dim customerList = From cust In customers
Take 10
Klauzula "Take While"
Opcjonalny.
KlauzulaTake While
zawiera elementy w kolekcji, o ile określony warunek jest true
i pomija pozostałe elementy. 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.
Nawiązywanie połączenia z bazą 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 projektanta obiektowo-relacyjnego (projektanta O/R). Projektant O/R umożliwia przeciąganie elementów, do których chcesz uzyskać dostęp w kodzie z Eksploratora serwera/Eksploratora baz danych 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 się do obiektu DataContext zdefiniowanego przez projektanta O/R.
DataContext Obiekt projektu jest nazwany na podstawie nazwy pliku LINQ to SQL. Na przykład, plik LINQ to SQL nazwany Northwind.dbml stworzy obiekt DataContext 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 elementy:
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
, , Sum
Average
, Min
lub Max
. Aby uzyskać więcej informacji na temat funkcji agregujących, zobacz Klauzula agregacji.
Użycie metod ToList
lub ToArray
również będzie wymuszać 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 | Opisuje funkcje XML w języku Visual Basic, których można użyć do wykonywania zapytań i które umożliwiają traktowanie 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 informacje ogólne, wskazówki programistyczne i przykłady dotyczące LINQ to Objects dla obiektów. |
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. |
Tematy instrukcji i przewodników krok po kroku
Instrukcje: wykonywanie zapytań względem bazy danych
Jak wywołać procedurę składowaną
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)