Visual Basic'de LINQ'e Giriş

Language-Integrated Sorgu (LINQ), her tür veriyle Visual Basic basit ve güçlü özellikler sağlar. LinQ, işlenecek bir veritabanına sorgu göndermek veya aramakta olan her veri türü için farklı sorgu söz dizimi ile çalışmak yerine, sorgular Visual Basic sağlar. Veri türünden bağımsız olarak birleşik bir söz dizimi kullanır.

LINQ, bir SQL Server veritabanından, XML'den, bellek içinde dizilerden ve koleksiyonlardan, ADO.NET veri kümelerinden veya LINQ destekleyen diğer uzak veya yerel veri kaynaklarından verileri sorgulamaya olanak sağlar. Bunların hepsini ortak dil öğeleriyle Visual Basic. Sorgularınız Visual Basic yazılmış olduğundan, sorgu sonuçlarınız kesin olarak yazılan nesneler olarak döndürülür. Bu nesneler IntelliSense'i destekler. Bu sayede daha hızlı kod yazabilir ve sorgulardaki hataları çalışma zamanında değil derleme zamanında yakalayabilirsiniz. LINQ sorguları, sonuçları iyileştirmek için ek sorguların kaynağı olarak kullanılabilir. Ayrıca, kullanıcıların sorgu sonuçlarınızı kolayca görüntüleyebiliyor ve değiştirebiliyor olması için denetimlere de bağlı olabilir.

Örneğin, aşağıdaki kod örneğinde bir koleksiyondan müşterilerin listesini döndüren ve bunları konumlarına göre grupleyen bir LINQ sorgusu yer alıyor.

' 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

Örnekleri çalıştırma

Giriş ve LINQ Sorgusunun Yapısı bölümündeki örnekleri çalıştırmak için, müşterilerin ve siparişlerin listelerini döndüren aşağıdaki kodu içerir.

' 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 sağlayıcıları

LINQ sağlayıcısı, Visual Basic LINQ sorgularınızı sorgulanan veri kaynağıyla eşler. Bir LINQ sorgusu yazmanız, sağlayıcı bu sorguyu alır ve veri kaynağının yürüteçleri komutlarına çevirir. Sağlayıcı ayrıca verileri kaynaktan sorgu sonucunuza dönüştüren nesnelere de dönüştürür. Son olarak, veri kaynağına güncelleştirmeler gönderirken nesneleri verilere dönüştürür.

Visual Basic aşağıdaki LINQ sağlayıcılarını içerir.

Sağlayıcı Description
Nesnelere LINQ Bu LINQ to Objects, bellek içinde koleksiyonları ve dizileri sorgulamanızı sağlar. Bir nesne veya arabirimini IEnumerable IEnumerable<T> destekliyorsa, LINQ to Objects sağlayıcı onu sorgulamanızı sağlar.

Varsayılan olarak tüm LINQ to Objects projeleri için içeri aktarılan ad alanını içeri aktararak Visual Basic System.Linq etkinleştirebilirsiniz.

Sağlayıcı hakkında daha fazla bilgi LINQ to Objects bkz. LINQ to Objects.
LINQ to SQL Bu LINQ to SQL sağlayıcı, bir veri veritabanındaki verileri sorgulamanızı ve SQL Server sağlar. Bu, bir uygulamanın nesne modelini veritabanındaki tablolara ve nesnelere eşlemeyi kolaylaştırır.

Visual Basic, LINQ to SQL (O/R Tasarımcısı) dahil Nesne İlişkisel Tasarımcısı daha kolay bir şekilde çalışma sağlar. Bu tasarımcı, bir veritabanındaki nesnelere eşli bir uygulamada nesne modeli oluşturmak için kullanılır. O/R Tasarımcısı saklı yordamları ve işlevleri veritabanıyla iletişimi yöneten ve iyimser eşzamanlılık denetimleri için durumu depolayan nesnesiyle eşleme DataContext işlevi de sağlar.

Sağlayıcı hakkında daha fazla bilgi LINQ to SQL için bkz. LINQ to SQL. Bu bilgiler hakkında daha fazla Nesne İlişkisel Tasarımcısı için bkz. LINQ to SQL Araçları Visual Studio.
LINQ - XML Bu LINQ to XML XML sorgulamanızı ve değiştirmenizi sağlar. Bellek içinde XML'yi değiştirebilir veya XML'yi dosyasından yükp bir dosyaya kaydedebilirsiniz.

Ayrıca, LINQ to XML xml değişmez ve XML eksen özelliklerini etkinleştiren xml doğrudan xml yazmanızı sağlayan Visual Basic sağlar. Daha fazla bilgi için bkz. XML.
LINQ - DataSet Veri LINQ to DataSet, bir veri kümesinde verileri sorgulamanızı ve ADO.NET sağlar. Veri kümeniz içinde verileri sorgulama, toplama ve güncelleştirme özelliklerinizi basitleştirmek ve genişletmek için veri kümelerini kullanan uygulamalara LINQ'un gücünü eklemek için kullanabilirsiniz.

Daha fazla bilgi için bkz. LINQ to DataSet.

LINQ sorgusunun yapısı

Genellikle sorgu ifadesi olarak adlandırılan LINQ sorgusu, sorgunun veri kaynaklarını ve yineleme değişkenlerini tanımlamak için sorgu yan tümcelerinin birleşimini içerir. Sorgu ifadesi, kaynak verilere uygulanacak sıralama, filtreleme, gruplama ve birleştirme veya hesaplamalar için yönergeler de içerebilir. Sorgu ifadesi söz dizimi, sorgunun söz dizim SQL; Bu nedenle, söz dizimlerinin büyük bir tanıdık olduğunu bulabilirsiniz.

Sorgu ifadesi yan tümcesi ile From başlar. Bu yan tümce, bir sorgunun kaynak verilerini ve kaynak verilerin her öğesine tek tek başvurmak için kullanılan değişkenleri tanımlar. Bu değişkenler, adlandırılmış aralık değişkenleri veya yineleme değişkenleridir. yan tümcesi sorgular dışında bir sorgu için gereklidir ve yan From Aggregate tümce From isteğe bağlıdır. Sorgunun kapsamı ve kaynağı or yan tümceleri içinde tanımlandıktan sonra, sorguyu geliştirmek için sorgu yan tümcelerinin From Aggregate herhangi bir birleşimini dahilebilirsiniz. Sorgu yan tümceleri hakkında ayrıntılı bilgi için bu Visual Basic LINQ Sorgu İşleçleri'ne bakın. Örneğin, aşağıdaki sorgu müşteri verisi kaynak koleksiyonunu değişken olarak customers ve adlı bir yineleme değişkeni olarak cust tanımlar.

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

Bu örnek tek başına geçerli bir sorgudur; ancak, sonucu geliştirmek için daha fazla sorgu yan tümcesi ekleyebilirsiniz. Örneğin, sonucu bir veya daha fazla Where değere göre filtrelemek için bir yan tümcesi ekebilirsiniz. Sorgu ifadeleri tek bir kod satırıdır; Sorgunun sonuna ek sorgu yan tümceleri eklemenin tek bir şartı vardır. Alt çizgi ( ) satır devamlılığı karakterini kullanarak okunabilirliği artırmak için bir sorguyu birden çok metin _ satırı arasında kırabilirsiniz. Aşağıdaki kod örneği, yan tümcesi içeren bir sorgu örneğini Where gösterir.

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

Bir diğer güçlü sorgu yan Select tümcesi de yalnızca veri kaynağından seçilen alanları geri dönmene olanak sağlayan yan tümcesidir. LINQ sorguları, kesin olarak türü kesin olarak yazılabilir nesnelerin numaralanabilir koleksiyonlarını verir. Sorgu, anonim türlerden veya adlandırılmış türlerden bir koleksiyon getirebilirsiniz. Yan tümcesini Select kullanarak veri kaynağından yalnızca tek bir alan getirebilirsiniz. Bunu yapmak için döndürülen koleksiyonun türü, o tek alanın t t t tür. Veri kaynağından birden çok Select alan dönmek için yan tümcesini de kullanabilirsiniz. Bunu yapmak için döndürülen koleksiyonun türü yeni bir anonim tür olarak kalır. Sorgu tarafından döndürülen alanları belirtilen adlandırılmış türe sahip alanlarla da eşebilirsiniz. Aşağıdaki kod örneği, veri kaynağından seçilen alanlardan verilerle doldurulmuş üyeleri olan anonim türlerden bir koleksiyon döndüren bir sorgu ifadesi gösterir.

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

LINQ sorguları, birden çok veri kaynağı birleştirmek ve tek bir sonuç dönmek için de kullanılabilir. Bu, bir veya daha fazla yan From tümcesi ile veya veya sorgu yan Join Group Join tümceleri kullanılarak yapılabilir. Aşağıdaki kod örneği, müşteri ve sipariş verilerini birleştiren ve müşteri ile sipariş verilerini içeren anonim türlerden bir koleksiyon döndüren bir sorgu ifadesi gösterir.

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.

Yan Group Join tümcesini kullanarak müşteri nesneleri koleksiyonunu içeren hiyerarşik bir sorgu sonucu oluşturabilirsiniz. Her müşteri nesnesinin, o müşteri için tüm siparişlerin koleksiyonunu içeren bir özelliği vardır. Aşağıdaki kod örneği, müşteri ve sipariş verilerini hiyerarşik bir sonuç olarak birleştiren ve anonim türlerden bir koleksiyon döndüren bir sorgu ifadesi gösterir. Sorgu, müşteri için sipariş verileri CustomerOrders koleksiyonunu içeren bir özellik içeren bir tür döndürür. Ayrıca söz konusu OrderTotal müşteriye ait tüm siparişlerin toplamlarının toplamını içeren bir özelliği de içerir. (Bu sorgu LEFT OUTER JOIN ile eşdeğerdir.)

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

Güçlü sorgu ifadeleri oluşturmak için kullanabileceğiniz birkaç ek LINQ sorgu işleci vardır. Bu konunun sonraki bölümünde, bir sorgu ifadesine dahil etmek için çeşitli sorgu yan tümceleri açıklanmıştır. Sorgu yan tümceleri Visual Basic için bkz. Sorgular.

Visual Basic LINQ sorgu işleçleri

Ad alanı sınıfları ve LINQ sorgularını destekleyen diğer ad alanları, uygulamanın ihtiyaçlarına göre sorgu oluşturmak ve geliştirmek için çağırabilirsiniz System.Linq yöntemleri içerir. Visual Basic yaygın sorgu yan tümceleri için anahtar sözcükler içerir. Sorgu yan tümceleri Visual Basic için bkz. Sorgular.

From yan tümcesi

Sorguyu From başlamak için Aggregate yan tümce veya yan tümce gereklidir. Yan From tümcesi, bir sorgu için kaynak koleksiyonu ve yineleme değişkenlerini belirtir. Örneğin:

' 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 tümcesi

İsteğe bağlı. Yan Select tümcesi, bir sorgu için yineleme değişkenleri kümesi belirtir. Örneğin:

' 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

Yan Select tümce belirtilmezse, sorgunun yineleme değişkenleri or yan tümcesi tarafından belirtilen yineleme From değişkenlerinden Aggregate oluşur.

Where yan tümcesi

İsteğe bağlı. Yan Where tümcesi, sorgu için bir filtreleme koşulu belirtir. Örneğin:

' 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 yan tümcesi

İsteğe bağlı. Yan Order By tümcesi, sorguda sütunlar için sıralama düzeni belirtir. Örneğin:

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

Join tümcesi

İsteğe bağlı. Bir Join yan tümcesi iki koleksiyonu tek bir koleksiyonda birleştirir. Örneğin:

' 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 tümcesi

İsteğe bağlı. Yan Group By tümcesi, sorgu sonucu öğelerini gruplar. Her gruba toplama işlevleri uygulamak için kullanılabilir. Örneğin:

' 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 tümcesi

İsteğe bağlı. Bir Group Join yan tümcesi iki koleksiyonu tek bir hiyerarşik koleksiyonda birleştirir. Örneğin:

' 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 tümcesi

Sorguyu Aggregate başlamak için From yan tümce veya yan tümce gereklidir. Yan Aggregate tümcesi bir koleksiyona bir veya daha fazla toplama işlevi uygular. Örneğin, aşağıdaki örnekte olduğu gibi, bir sorgu tarafından döndürülen tüm öğelerin toplamını hesaplamak için Aggregate yan tümcesini kullanabilirsiniz.

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

Sorguyu değiştirmek için yan Aggregate tümcesini de kullanabilirsiniz. Örneğin, ilgili sorgu koleksiyonunda Aggregate hesaplama yapmak için yan tümcesini kullanabilirsiniz. Örneğin:

' 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 tümcesi

İsteğe bağlı. Yan Let tümcesi bir değeri hesaplar ve sorguda yeni bir değişkene atar. Örneğin:

' 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 tümcesi

İsteğe bağlı. Yan Distinct tümcesi, sorgu sonuçlarında yinelenen değerleri ortadan kaldırmak için geçerli yineleme değişkeninin değerlerini kısıtlar. Örneğin:

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

Skip tümcesi

İsteğe bağlı. Yan Skip tümcesi bir koleksiyonda belirtilen sayıda öğeyi atlar ve kalan öğeleri döndürür. Örneğin:

' 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 tümcesi

İsteğe bağlı. Bir Skip While yan tümcesi, belirtilen koşul olduğu sürece koleksiyonda öğeleri atlar ve true ardından kalan öğeleri döndürür. Örneğin:

' 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 tümcesi

İsteğe bağlı. Bir Take yan tümcesi, koleksiyonun başından belirtilen sayıda bitişik öğe döndürür. Örneğin:

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

Take While tümcesi

İsteğe bağlı. Bir Take While yan tümcesi, belirtilen koşul olduğu sürece koleksiyonda öğeleri içerir ve true kalan öğeleri atlar. Örneğin:

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

Ek LINQ sorgu özelliklerini kullanma

LINQ tarafından sağlanan numaralanabilir ve sorgulanabilir türlerin üyelerini çağırarak ek LINQ sorgu özelliklerini kullanabilirsiniz. Bir sorgu ifadesinin sonucunda belirli bir sorgu işleci çağırarak bu ek özellikleri kullanabilirsiniz. Örneğin, aşağıdaki örnek iki Enumerable.Union sorgunun sonuçlarını tek bir sorgu sonucunda birleştirmek için yöntemini kullanır. Sorgu sonuçlarını Enumerable.ToList genel bir liste olarak geri dönmek için yöntemini kullanır.

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

Ek LINQ özellikleri hakkında ayrıntılı bilgi için bkz. Standart Sorgu İşleçleri'ne Genel Bakış.

Bağlan kullanarak veritabanına LINQ to SQL

Bu Visual Basic, bir SQL Server kullanarak erişmek istediğiniz tablolar, görünümler ve saklı yordamlar gibi veritabanı nesnelerini LINQ to SQL belirtirsiniz. Bir LINQ to SQL .dbml uzantısına sahip.

SQL Server veritabanına geçerli bir bağlantınız olduğunda, projenize LINQ to SQL Sınıfları öğe şablonu eklersiniz. Bu, çalışma Nesne İlişkisel Tasarımcısı (O/R tasarımcısı) görüntüler. O/R Tasarımcısı, kodunda erişmek istediğiniz öğeleri Sunucu Gezgini / Veritabanı Gezgini tasarımcı yüzeyine sürüklemenizi sağlar. LINQ to SQL dosyası projenize DataContext bir nesnesi ekler. Bu nesne, erişmek istediğiniz tabloların ve görünümlerin özelliklerini ve koleksiyonlarını ve çağrı yapmak istediğiniz saklı yordamların yöntemlerini içerir. LINQ to SQL (.dbml) dosyasına değişikliklerinizi kaydeddikten sonra, O/R Tasarımcısı tarafından tanımlanan nesneye başvurarak kodundaki bu DataContext nesnelere erişebilirsiniz. Projenizin DataContext nesnesi, LINQ to SQL dosyanıza göre adlandırılmıştır. Örneğin Northwind.dbml LINQ to SQL adlı bir dosya adlı bir nesne DataContext NorthwindDataContext oluşturur.

Adım adım yönergelere sahip örnekler için bkz. Nasıl yapılır: Veritabanı Sorgulama ve Nasıl Yapılır: Saklı Yordam Çağırma.

Visual Basic LINQ destekleyen özellikler

Visual Basic LINQ kullanımını basit hale düşüren ve LINQ sorguları gerçekleştirmek için yazmanız gereken kod miktarını azaltan diğer önemli özellikleri içerir. Buna aşağıdakiler dahildir:

  • Anonim türler: Sorgu sonucuna göre yeni bir tür oluşturmanıza olanak sağlar.

  • Türü belirtmeyi ertelemeye olanak sağlayan ve derleyicinin sorgu sonucuna göre türü çıkartırmalarına olanak sağlayan örtülü olarak türün yazıldı değişkenleri.

  • Uzantı yöntemleri: Mevcut bir türü, türü değiştirmeden kendi yöntemleriniz ile genişletmenize olanak sağlar.

Ayrıntılar için bkz. LINQ'Visual Basic Destekleyen Özellikler.

Ertelenmiş ve hemen sorgu yürütme

Sorgu yürütme, sorgu oluşturmaktan ayrıdır. Bir sorgu oluşturulduktan sonra, yürütmesi ayrı bir mekanizma tarafından tetiklenir. Bir sorgu tanımlandığı anda (hemen yürütme) yürütülebiliyor veya tanım depolanıyor ve sorgu daha sonra yürütülebiliyor ( ertelenmiş yürütme).

Varsayılan olarak, bir sorgu oluştururken sorgunun kendisi hemen yürütülmez. Bunun yerine sorgu tanımı, sorgu sonucuna başvuru yapmak için kullanılan değişkende depolanır. Sorgu sonucu değişkenine daha sonra kod içinde (döngüde gibi) For…Next erişilirken sorgu yürütülür. Bu işlem ertelenmiş yürütme olarak adlandırılır.

Sorgular tanımlandığı zaman da yürütülür ve bu da hemen yürütme olarak adlandırılır. Sorgu sonuçlarının tek tek öğelerine erişim gerektiren bir yöntem uygulayarak hemen yürütmeyi tetiklersiniz. Bu, , , veya gibi bir toplama işlevi dahil bunun Count Sum sonucu Average Min Max olabilir. Toplama işlevleri hakkında daha fazla bilgi için bkz. Aggregate Clause.

veya ToList ToArray yöntemlerinin kullanımı da anında yürütmeyi zorlar. Bu, sorguyu hemen yürütmek ve sonuçları önbelleğe almak istediğiniz zaman yararlı olabilir. Bu yöntemler hakkında daha fazla bilgi için bkz. Veri Türlerini Dönüştürme.

Sorgu yürütme hakkında daha fazla bilgi için bkz. İlk LINQ Sorgunuz Yazma.

Visual Basic'de XML

Dosyanın xml özellikleri Visual Basic XML değişmez ve XML ekseni özelliklerini içerir. Bu özellikler, kodunuz içinde XML'i kolayca oluşturmanıza, erişmenize, sorgulamanıza ve değiştirmenize olanak sağlar. XML değişmez verileri, doğrudan kodunuz içinde XML yazmanızı sağlar. Bu Visual Basic, XML'yi birinci sınıf veri nesnesi olarak davranır.

Aşağıdaki kod örneğinde, BIR XML öğesinin nasıl oluşturularak, alt öğelerine ve özniteliklerine nasıl erişilen ve LINQ kullanarak öğenin içeriğinin nasıl sorgulan olduğu gösterir.

' 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

Daha fazla bilgi için bkz. XML.

Konu Description
XML Sorgulanan ve Visual Basic xml'i koda birinci sınıf veri nesneleri olarak dahil etmek için etkinleştiren xml Visual Basic açıklar.
Sorgular Visual Basic ' de kullanılabilen sorgu yan tümceleri hakkında başvuru bilgileri sağlar.
LINQ (dil ile tümleşik sorgu) Genel bilgileri, programlama kılavuzunu ve LINQ için örnekleri içerir.
LINQ to SQL Genel bilgileri, programlama kılavuzunu ve LINQ to SQL yönelik örnekleri içerir.
Nesnelere LINQ Genel bilgileri, programlama kılavuzunu ve LINQ to Objects yönelik örnekleri içerir.
ADO.NET'e LINQ (Portal Sayfası) Genel bilgiler, Programlama Kılavuzu ve LINQ to ADO.NET için örneklere bağlantılar içerir.
LINQ - XML Genel bilgileri, programlama kılavuzunu ve LINQ to XML yönelik örnekleri içerir.

Nasıl yapılır ve İzlenecek yol konuları

Nasıl yapılır: bir veritabanını sorgulama

Nasıl yapılır: saklı yordam çağırma

Nasıl yapılır: veritabanındaki verileri değiştirme

Nasıl yapılır: birleşimlerle verileri birleştirme

Nasıl yapılır: sorgu sonuçlarını sıralama

Nasıl yapılır: sorgu sonuçlarını filtreleme

Nasıl yapılır: Count, Sum veya Average Data

Nasıl yapılır: bir sorgu sonucunda en küçük veya en büyük değeri bulma

Nasıl yapılır: Güncelleştirme, ekleme ve silme işlemleri gerçekleştirmek için saklı yordamlar atama (O/R Tasarımcısı)

bölüm 17: programlamada lınq Visual Basic 2008

Ayrıca bkz.