Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu izlenecek yol, en düşük karmaşıklıklara sahip temel bir uçtan uca LINQ to SQL senaryosu sağlar. Örnek Northwind veritabanında Customers tablosunu modelleyen bir varlık sınıfı oluşturacaksınız. Ardından, Londra'da bulunan müşterileri listelemek için basit bir sorgu oluşturacaksınız.
Bu kılavuz, LINQ to SQL kavramlarını göstermeye yardımcı olmak için tasarım gereği koda yöneliktir. Normalde nesne modelinizi oluşturmak için Nesne İlişkisel Tasarımcısı'nı kullanırsınız.
Uyarı
Bilgisayarınız, aşağıdaki yönergelerde bazı Visual Studio kullanıcı arabirimi öğeleri 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.
Bu kılavuz, Visual Basic Geliştirme Ayarları kullanılarak yazılmıştır.
Önkoşullar
Bu kılavuzda, dosyaları tutmak için ayrılmış bir klasör ("c:\linqtest") kullanılır. İzlenecek yol başlamadan önce bu klasörü oluşturun.
Bu izlenecek yol, Northwind örnek veritabanını gerektirir. Geliştirme bilgisayarınızda bu veritabanı yoksa, microsoft indirme sitesinden indirebilirsiniz. Yönergeler için bkz. Örnek Veritabanlarını İndirme. Veritabanını indirdikten sonra, dosyayı c:\linqtest klasörüne kopyalayın.
Genel Bakış
Bu kılavuz altı ana görevden oluşur:
Visual Studio'da LINQ to SQL çözümü oluşturma.
Bir sınıfı veritabanı tablosuna eşleme.
Sınıfta veritabanı sütunlarını temsil etmek için özellikler belirleme.
Northwind veritabanı bağlantısını belirtme.
Veritabanına karşı çalıştırmak için basit bir sorgu oluşturma.
Sorguyu yürütme ve sonuçları gözlemleme.
LINQ to SQL Çözümü Oluşturma
Bu ilk görevde, LINQ to SQL projesi oluşturmak ve çalıştırmak için gerekli başvuruları içeren bir Visual Studio çözümü oluşturacaksınız.
LINQ to SQL çözümü oluşturmak için
Dosya menüsünde Yeni Proje'ye tıklayın.
Yeni Proje iletişim kutusunun Proje türleri bölmesinde Visual Basic'e tıklayın.
Şablonlar bölmesinde Konsol Uygulaması'na tıklayın.
Ad kutusuna LinqConsoleApp yazın.
Tamam'a tıklayın.
LINQ Başvuruları ve Yönergeleri Ekleme
Bu kılavuzda, projenizde varsayılan olarak yüklenmemiş olabilecek derlemeler kullanılır. Projenizde başvuru olarak listelenmiyorsa System.Data.Linq (Çözüm Gezgini'ndeTüm Dosyaları Göster'e tıklayın ve Başvurular düğümünü genişletin), aşağıdaki adımlarda açıklandığı gibi ekleyin.
System.Data.Linq eklemek için
Çözüm Gezgini'da Başvurular'a sağ tıklayın ve ardından Başvuru Ekle'ye tıklayın.
Başvuru Ekle iletişim kutusunda .NET'e tıklayın, System.Data.Linq derlemesine ve ardından Tamam'a tıklayın.
Projeye montaj eklendi.
Ayrıca Başvuru Ekle iletişim kutusunda .NET'e tıklayın, sayfayı kaydırıp System.Windows.Forms'a tıklayın ve ardından Tamam'a tıklayın.
İzlenecek yoldaki ileti kutusunu destekleyen bu derleme projeye eklenir.
Aşağıdaki yönergeleri
Module1'nin üzerine ekleyin:Imports System.Data.Linq Imports System.Data.Linq.Mapping Imports System.Windows.Forms
Bir Sınıfı Veritabanı Tablosuna Eşleme
Bu adımda bir sınıf oluşturacak ve bunu bir veritabanı tablosuna eşleyebilirsiniz. Böyle bir sınıf bir varlık sınıfı olarak anılır. Eşlemenin yalnızca TableAttribute özniteliği eklenerek gerçekleştirildiğini unutmayın. Name özelliği, veritabanındaki tablonun adını belirtir.
Varlık sınıfı oluşturmak ve bunu bir veritabanı tablosuyla eşlemek için
Aşağıdaki kodu
Sub Mainöğesinin hemen üzerine Module1.vb dosyasına yazın veya yapıştırın.<Table(Name:="Customers")> _ Public Class Customer End Class
Sınıfta Veritabanı Sütunlarını Temsil Edecek Özellikleri Belirleme
Bu adımda, birkaç görevi yerine getirebilirsiniz.
varlık sınıfındaki ColumnAttribute ve
CustomerIDözelliklerini veritabanı tablosundaki sütunları temsil eden olarak atamak içinCityözniteliğini kullanırsınız.özelliğini veritabanındaki
CustomerIDbirincil anahtar sütununu temsil eden olarak belirleyebilirsiniz._CustomerIDve_Cityalanlarını özel depolama için belirlersiniz. LINQ to SQL, iş mantığı içerebilecek genel erişimcileri kullanmak yerine değerleri doğrudan depolayabilir ve alabilir.
İki veritabanı sütununun özelliklerini temsil etmek için
Module1.vb dosyasına aşağıdaki kodu
End Class'den hemen önce yazın veya yapıştırın.Private _CustomerID As String <Column(IsPrimaryKey:=True, Storage:="_CustomerID")> _ Public Property CustomerID() As String Get Return Me._CustomerID End Get Set(ByVal value As String) Me._CustomerID = value End Set End Property Private _City As String <Column(Storage:="_City")> _ Public Property City() As String Get Return Me._City End Get Set(ByVal value As String) Me._City = value End Set End Property
Northwind Veritabanı Bağlantısını Belirtme
Bu adımda, kod tabanlı veri yapılarınızla veritabanının kendisi arasında bağlantı kurmak için bir DataContext nesne kullanırsınız. DataContext, veritabanından nesneleri aldığınız ve değişiklikleri gönderdiğiniz ana kanaldır.
Ayrıca, veritabanındaki Müşteriler tablosuna karşı sorgularınız için mantıksal, tip atanmış bir tablo olarak Table(Of Customer) tanımlarsınız. Bu sorguları sonraki adımlarda oluşturacak ve yürüteceksiniz.
Veritabanı bağlantısını belirtmek için
Aşağıdaki kodu
Sub Mainyönteminin içine yazın veya yapıştırın.northwnd.mdfDosyanın linqtest klasöründe olduğu varsayılır. Daha fazla bilgi için bu kılavuzun önceki bölümlerinde yer alan Önkoşullar bölümüne bakın.' Use a connection string. Dim db As New DataContext _ ("c:\linqtest\northwnd.mdf") ' Get a typed table to run queries. Dim Customers As Table(Of Customer) = _ db.GetTable(Of Customer)()
Basit Sorgu Oluşturma
Bu adımda, Müşteriler tablosundaki hangi müşterilerin Londra'da bulunduğunu bulmak için bir sorgu oluşturursunuz. Bu adımdaki sorgu kodu yalnızca sorguyu açıklar. Uygulamaz. Bu yaklaşım ertelenen yürütme olarak bilinir. Daha fazla bilgi için bkz . LINQ Sorgularına Giriş (C#).
AYRıCA LINQ to SQL'in oluşturduğu SQL komutlarını göstermek için bir günlük çıkışı da oluşturacaksınız. Bu günlüğe kaydetme özelliği (kullanan Log), hata ayıklamada ve veritabanına gönderilen komutların sorgunuzu doğru şekilde temsil ettiğini belirlemede yararlıdır.
Basit bir sorgu oluşturmak için
Yöntemdeki
Sub Maintanımından sonraTable(Of Customer)içine aşağıdaki kodu yazın veya yapıştırın.' Attach the log to show generated SQL in a console window. db.Log = Console.Out ' Query for customers in London. Dim custQuery = _ From cust In Customers _ Where cust.City = "London" _ Select cust
Sorguyu Yürütme
Bu adımda sorguyu yürütürsiniz. Önceki adımlarda oluşturduğunuz sorgu ifadeleri, sonuçlar gerekli olana kadar değerlendirilmez. Yinelemeye For Each başladığınızda, veritabanında bir SQL komutu yürütülür ve nesneler oluşturulur.
Sorguyu yürütmek için
Yöntemin sonuna aşağıdaki kodu yazın veya yapıştırın
Sub Main(sorgu açıklamasından sonra):' Format the message box. Dim msg As String = "", title As String = "London customers:", _ response As MsgBoxResult, style As MsgBoxStyle = _ MsgBoxStyle.Information ' Execute the query. For Each custObj In custQuery msg &= String.Format(custObj.CustomerID & vbCrLf) Next ' Display the results. response = MsgBox(msg, style, title)Uygulamada hata ayıklamak için F5 tuşuna basın.
Uyarı
Uygulamanız bir çalışma zamanı hatası oluşturuyorsa, İzlenecek Yollara Göre Öğrenme'nin Sorun Giderme bölümüne bakın.
İleti kutusunda altı müşterinin listesi görüntülenir. Konsol penceresinde oluşturulan SQL kodu görüntülenir.
İleti kutusunu kapatmak için Tamam'a tıklayın.
Uygulama kapanır.
Dosya menüsünde, Tümünü Kaydetseçeneğine tıklayın.
Sonraki izlenecek yol ile devam ederseniz bu uygulamaya ihtiyacınız olacaktır.
Sonraki Adımlar
İzlenecek Yol: İlişkiler Arasında Sorgulama (Visual Basic) konusu, bu kılavuzun sona erdiği yerden devam eder. İlişkiler Arasında Sorgulama kılavuzu, LINQ to SQL'in ilişkisel veritabanındaki birleşimlere benzer şekilde tablolar arasında nasıl sorgu oluşturabileceğini gösterir.
Eğer İlişkiler Arasında Sorgulama rehberini yapmak istiyorsanız, az önce tamamladığınız rehberin çözümünü kaydettiğinizden emin olun; bu bir ön koşuldur.