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 kılavuz, veritabanında veri ekleme, değiştirme ve silmeye yönelik temel bir uçtan uca LINQ to SQL senaryosu sağlar. Müşteri eklemek, müşterinin adını değiştirmek ve siparişi silmek için örnek Northwind veritabanının bir kopyasını kullanacaksı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 izlenecek yol aşağıdakileri gerektirir:
Bu kılavuzda, dosyaları tutmak için ayrılmış bir klasör ("c:\linqtest2") kullanılır. İzlenecek yol başlamadan önce bu klasörü oluşturun.
Northwind örnek veritabanı.
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 northwnd.mdf dosyasını c:\linqtest2 klasörüne kopyalayın.
Northwind veritabanından oluşturulan bir Visual Basic kod dosyası.
Nesne İlişkisel Tasarımcısı'nı veya SQLMetal aracını kullanarak bu dosyayı oluşturabilirsiniz. Bu izlenecek yol, SQLMetal aracı aşağıdaki komut satırıyla kullanılarak yazılmıştır:
sqlmetal /code:"c:\linqtest2\northwind.vb" /language:vb "C:\linqtest2\northwnd.mdf" /pluralize
Daha fazla bilgi için bkz. SqlMetal.exe (Kod Oluşturma Aracı).
Genel Bakış
Bu kılavuz altı ana görevden oluşur:
Visual Studio'da LINQ to SQL çözümü oluşturma.
Veritabanına kod dosyasını projeye ekleme.
Yeni bir müşteri nesnesi oluşturma.
Müşterinin iletişim adını değiştirme.
Sipariş siliniyor.
Bu değişiklikler Northwind veritabanına gönderiliyor.
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
Visual Studio Dosya menüsünde Yeni Proje'ye tıklayın.
Yeni Proje iletişim kutusundaki Proje türleri bölmesinde Visual Basic'e tıklayın.
Şablonlar bölmesinde Konsol Uygulaması'na tıklayın.
Ad kutusuna LinqDataManipulationApp 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.
Kod düzenleyicisinde Module1'in üzerine aşağıdaki yönergeleri ekleyin:
Imports System.Data.Linq Imports System.Data.Linq.Mapping
Northwind Kod Dosyasını Projeye Ekleme
Bu adımlarda, Northwind örnek veritabanından bir kod dosyası oluşturmak için SQLMetal aracını kullandığınız 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.
Northwind kod dosyasını projeye eklemek için
Project menüsünde, Varolan Öğe Ekleöğesine tıklayın.
Varolan Öğe Ekle iletişim kutusunda c:\linqtest2\northwind.vb gidin ve Ekle'ye tıklayın.
northwind.vb dosyası projeye eklenir.
Veritabanı Bağlantısını Ayarlama
İlk olarak, veritabanı bağlantınızı test edin. Özellikle veritabanının adı olan Northwnd'da i karakteri bulunmadığını unutmayın. Sonraki adımlarda hata oluşturursanız, Northwind kısmi sınıfının nasıl yazıldığını belirlemek için northwind.vb dosyasını gözden geçirin.
Veritabanı bağlantısını ayarlamak ve test etmek için
aşağıdaki kodu yazın veya içine
Sub Mainyapıştırın:' Use a connection string, but connect to ' the temporary copy of the database. Dim db As New Northwnd _ ("C:\linqtest2\northwnd.mdf") ' Keep the console window open after activity stops. Console.ReadLine()Bu noktada uygulamayı test etmek için F5 tuşuna basın.
Konsol penceresi açılır.
Konsol penceresinde Enter tuşuna basarak veya Visual Studio Hata Ayıklama menüsünde Hata Ayıklamayı Durdur'a tıklayarak uygulamayı kapatın.
Yeni Varlık Oluşturma
Yeni varlık oluşturmak basittir. Anahtar sözcüğünü Customer kullanarak nesneler (örneğinNew) oluşturabilirsiniz.
Bu ve aşağıdaki bölümlerde, yalnızca yerel önbellekte değişiklik yapıyorsunuz. Adım adım rehberin sonuna doğru SubmitChanges çağrılana kadar veritabanına hiçbir değişiklik gönderilmez.
Yeni bir Müşteri varlığı nesnesi eklemek için
Yeni bir
Customeroluşturmak içinConsole.ReadLineönüneSub Mainiçinde aşağıdaki kodu ekleyin:' Create the new Customer object. Dim newCust As New Customer() newCust.CompanyName = "AdventureWorks Cafe" newCust.CustomerID = "A3VCA" ' Add the customer to the Customers table. db.Customers.InsertOnSubmit(newCust) Console.WriteLine("Customers matching CA before insert:") Dim custQuery = _ From cust In db.Customers _ Where cust.CustomerID.Contains("CA") _ Select cust For Each cust In custQuery Console.WriteLine("Customer ID: " & cust.CustomerID) NextÇözümde hata ayıklamak için F5 tuşuna basın.
Konsol penceresinde gösterilen sonuçlar aşağıdaki gibidir:
Customers matching CA before insert:Customer ID: CACTUCustomer ID: RICARYeni satırın sonuçlarda görünmediğini unutmayın. Yeni veriler henüz veritabanına gönderilmedi.
Hata ayıklamayı durdurmak için Konsol penceresinde Enter tuşuna basın.
Varlığı Güncelleştirme
Aşağıdaki adımlarda, bir Customer nesneyi alır ve özelliklerinden birini değiştirirsiniz.
Müşterinin adını değiştirmek için
Yukarıdaki
Console.ReadLine()kodu ekleyin:Dim existingCust = _ (From cust In db.Customers _ Where cust.CustomerID = "ALFKI" _ Select cust).First() ' Change the contact name of the customer. existingCust.ContactName = "New Contact"
Varlık Silme
Aynı müşteri nesnesini kullanarak ilk siparişi silebilirsiniz.
Aşağıdaki kod, satırlar arasındaki ilişkilerin nasıl kesilip silineceği ve veritabanından bir satırın nasıl silineceği gösterilmektedir.
Satırı silin
Aşağıdaki kodu hemen üstüne
Console.ReadLine()ekleyin:' Access the first element in the Orders collection. Dim ord0 As Order = existingCust.Orders(0) ' Access the first element in the OrderDetails collection. Dim detail0 As OrderDetail = ord0.OrderDetails(0) ' Display the order to be deleted. Console.WriteLine _ (vbCrLf & "The Order Detail to be deleted is: OrderID = " _ & detail0.OrderID) ' Mark the Order Detail row for deletion from the database. db.OrderDetails.DeleteOnSubmit(detail0)
Değişiklikleri Veritabanına Gönderme
Nesneleri oluşturmak, güncelleştirmek ve silmek için gereken son adım, değişiklikleri veritabanına göndermektir. Bu adım olmadan, değişiklikleriniz yalnızca yereldir ve sorgu sonuçlarında görünmez.
Değişiklikleri veritabanına göndermek için
Aşağıdaki kodu hemen üstüne
Console.ReadLineekleyin:db.SubmitChanges()Değişiklikleri göndermenin önce ve sonra etkilerini göstermek için aşağıdaki kodu (
SubmitChangessonra) ekleyin:Console.WriteLine(vbCrLf & "Customers matching CA after update:") Dim finalQuery = _ From cust In db.Customers _ Where cust.CustomerID.Contains("CA") _ Select cust For Each cust In finalQuery Console.WriteLine("Customer ID: " & cust.CustomerID) NextÇözümde hata ayıklamak için F5 tuşuna basın.
Konsol penceresi aşağıdaki gibi görünür:
Customers matching CA before update: Customer ID: CACTU Customer ID: RICAR The Order Detail to be deleted is: OrderID = 10643 Customers matching CA after update: Customer ID: A3VCA Customer ID: CACTU Customer ID: RICARHata ayıklamayı durdurmak için Konsol penceresinde Enter tuşuna basın.
Uyarı
Değişiklikleri göndererek yeni müşteriyi ekledikten sonra, aynı müşteriyi yeniden ekleyemediğiniz için bu çözümü olduğu gibi yeniden yürütemezsiniz. Çözümü yeniden yürütmek için, eklenecek müşteri kimliğinin değerini değiştirin.