Nasıl yapılır: Bir LINQ Sorgu Sonucunu Belirli Bir Tür Olarak Döndürme (Visual Basic)

DilLe Tümleşik Sorgu (LINQ), veritabanı bilgilerine erişmeyi ve sorguları yürütmeyi kolaylaştırır. Varsayılan olarak, LINQ sorguları nesnelerin listesini anonim bir tür olarak döndürür. Yan tümcesini kullanarak bir sorgunun belirli bir türün listesini döndürmesini Select de belirtebilirsiniz.

Aşağıdaki örnekte, SQL Server veritabanında sorgular gerçekleştiren ve sonuçları belirli bir adlandırılmış tür olarak projeleyen yeni bir uygulamanın nasıl oluşturulacağı gösterilmektedir. Daha fazla bilgi için bkz . Anonim Türler ve Select Yan Tümcesi.

Bu konudaki örneklerde Northwind örnek veritabanı kullanılmıştır. Geliştirme bilgisayarınızda bu veritabanı yoksa, bu veritabanını Microsoft İndirme Merkezi'nden indirebilirsiniz. Yönergeler için bkz . Örnek Veritabanlarını İndirme.

Not

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE’yi kişiselleştirme.

Veritabanına bağlantı oluşturmak için

  1. Visual Studio'da, Görünüm menüsünde Sunucu Gezgini/Veritabanı Gezgini'ne tıklayarak Sunucu Gezgini/Veritabanı Gezgini'ni açın.

  2. Sunucu Gezgini Veritabanı Gezgini'nde/ Veri Bağlan ions'a sağ tıklayın ve ardından Bağlan ekle'ye tıklayın.

  3. Northwind örnek veritabanı için geçerli bir bağlantı belirtin.

LINQ to SQL dosyası içeren bir proje eklemek için

  1. Visual Studio'da, Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın. Proje türü olarak Visual Basic Windows Forms Uygulaması'nı seçin.

  2. Proje menüsünde Yeni Öğe Ekle'ye tıklayın. LINQ to SQL Sınıfları öğe şablonunu seçin.

  3. Dosyayı northwind.dbml olarak adlandırın. Ekle'yi tıklatın. Nesne İlişkisel Tasarımcısı (O/R Tasarım Aracı) northwind.dbml dosyası için açılır.

O/R Tasarım Aracı sorguya tablo eklemek için

  1. Sunucu Gezgini/Veritabanı Gezgini'nde Northwind veritabanı bağlantısını genişletin. Tablolar klasörünü genişletin.

    O/R Tasarım Aracı kapattıysanız, daha önce eklediğiniz northwind.dbml dosyasına çift tıklayarak dosyayı yeniden açabilirsiniz.

  2. Müşteriler tablosuna tıklayın ve tasarımcının sol bölmesine sürükleyin.

    Tasarımcı projeniz için yeni Customer bir nesne oluşturur. Sorgu sonucunu tür olarak Customer veya oluşturduğunuz bir tür olarak yansıtabilirsiniz. Bu örnek, sonraki bir yordamda yeni bir tür oluşturur ve bu tür olarak bir sorgu sonucu yansıtacaktır.

  3. Değişikliklerinizi kaydedin ve tasarımcıyı kapatın.

  4. Projenizi kaydedin.

Veritabanını sorgulamak ve sonuçları görüntülemek için kod eklemek için

  1. Araç Kutusu'ndan, bir DataGridView denetimi projeniz için varsayılan Windows Formu olan Form1'e sürükleyin.

  2. Form1 sınıfını değiştirmek için Form1'e çift tıklayın.

  3. End Class Form1 sınıfının deyiminden sonra aşağıdaki kodu ekleyerek bu örneğin sorgu sonuçlarını tutacak bir CustomerInfo tür oluşturun.

    Public Class CustomerInfo
        Public Property CompanyName As String
        Public Property ContactName As String
    End Class
    
  4. O/R Tasarım Aracı tablolar eklediğinizde tasarımcı projenize bir DataContext nesne ekledi. Bu nesne, bu tablolara erişmek ve her tablo için tek tek nesnelere ve koleksiyonlara erişmek için ihtiyacınız olan kodu içerir. DataContext Projenizin nesnesi, .dbml dosyanızın adına göre adlandırılır. Bu proje için DataContext nesnesi olarak adlandırılır northwindDataContext.

    kodunuzda öğesinin DataContext bir örneğini oluşturabilir ve O/R Tasarım Aracı tarafından belirtilen tabloları sorgulayabilirsiniz.

    Load Form1 sınıfı olması durumunda, veri bağlamınızın özellikleri olarak sunulan tabloları sorgulamak için aşağıdaki kodu ekleyin. Sorgunun Select yan tümcesi, sorgu sonucunun her öğesi için anonim bir tür yerine yeni CustomerInfo bir tür oluşturur.

    Dim db As New northwindDataContext
    
    Dim customerList =
      From cust In db.Customers
      Where cust.CompanyName.StartsWith("L")
      Select New CustomerInfo With {.CompanyName = cust.CompanyName,
                                    .ContactName = cust.ContactName}
    
    DataGridView1.DataSource = customerList
    
  5. Projenizi çalıştırmak ve sonuçları görüntülemek için F5 tuşuna basın.

Ayrıca bkz.