Aracılığıyla paylaş


Ekleme, Güncelleştirme ve Silme İşlemleri

LINQ to SQL'de nesne modelinizdeki nesneleri ekleyerek, değiştirerek ve kaldırarak Insert, Update ve Delete işlemlerini gerçekleştirirsiniz. Varsayılan olarak, LINQ to SQL eylemlerinizi SQL'e çevirir ve değişiklikleri veritabanına gönderir.

LINQ to SQL, nesnelerinizde yaptığınız değişiklikleri düzenleme ve kalıcı hale getirmek için maksimum esneklik sunar. Varlık nesneleri kullanılabilir duruma gelir gelmez (bunları bir sorgu aracılığıyla alarak veya yeniden oluşturarak), bunları uygulamanızdaki tipik nesneler olarak değiştirebilirsiniz. Başka bir ifadeyle, değerlerini değiştirebilir, bunları koleksiyonlarınıza ekleyebilir ve koleksiyonlarınızdan kaldırabilirsiniz. LINQ to SQL değişikliklerinizi izler ve çağırdığınızda SubmitChangesbunları veritabanına geri iletmeye hazırdır.

Uyarı

LINQ to SQL, art arda silme işlemlerini desteklemez veya tanımaz. Tabloda kısıtlamaları olan bir satırı silmek istiyorsanız, veritabanındaki yabancı anahtar kısıtlamasında ON DELETE CASCADE kuralını ayarlamalı ya da üst nesnenin silinmesini engelleyen alt nesneleri önce kendi kodunuzla silmeniz gerekir. Aksi takdirde, bir özel durum oluşturulur. Daha fazla bilgi için bkz . Nasıl yapılır: Veritabanından Satır Silme.

Aşağıdaki alıntılar, Northwind örnek veritabanındaki Customer ve Order sınıflarını kullanır. Sınıf tanımları kısalık adına gösterilmemiştir.

Northwnd db = new Northwnd(@"c:\Northwnd.mdf");

// Query for a specific customer.
var cust =
    (from c in db.Customers
     where c.CustomerID == "ALFKI"
     select c).First();

// Change the name of the contact.
cust.ContactName = "New Contact";

// Create and add a new Order to the Orders collection.
Order ord = new Order { OrderDate = DateTime.Now };
cust.Orders.Add(ord);

// Delete an existing Order.
Order ord0 = cust.Orders[0];

// Removing it from the table also removes it from the Customer’s list.
db.Orders.DeleteOnSubmit(ord0);

// Ask the DataContext to save all the changes.
db.SubmitChanges();
Dim db As New Northwnd("…\Northwnd.mdf")

Dim cust As Customer = _
(From c In db.Customers _
 Where c.CustomerID = "ALFKI" _
 Select c) _
.First()

' Change the name of the contact.
cust.ContactName = "New Contact"

' Create and add a new Order to Orders collection.
Dim ord As New Order With {.OrderDate = DateTime.Now}
cust.Orders.Add(ord)

' Delete an existing Order.
Dim ord0 As Order = cust.Orders(0)

' Removing it from the table also removes it from 
' the Customer’s list.
db.Orders.DeleteOnSubmit(ord0)

' Ask the DataContext to save all the changes.
db.SubmitChanges()

çağırdığınızda SubmitChanges, LINQ to SQL değişikliklerinizi veritabanına geri iletmek için gereken SQL komutlarını otomatik olarak oluşturur ve yürütür.

Uyarı

Bu davranışı, genellikle saklı yordam yoluyla kendi özel mantığınızı kullanarak geçersiz kılabilirsiniz. Daha fazla bilgi için bkz. Varsayılan Davranışı Geçersiz Kılmada Geliştiricinin Sorumlulukları.

Visual Studio kullanan geliştiriciler, bu amaçla saklı yordamlar geliştirmek için Nesne İlişkisel Tasarımcısı'nı kullanabilir.

Ayrıca bakınız