Share via


Insert, Update ve Delete İşlemleri

NESNE modelinizdeki nesneleri ekleyerek, değiştirerek ve kaldırarak LINQ to SQL'de , Updateve Delete işlemlerini gerçekleştirirsinizInsert. 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.

Not

LINQ to SQL, art arda silme işlemlerini desteklemez veya tanımaz. Tablonun üzerinde kısıtlamaları olan bir satırı silmek istiyorsanız, kuralı veritabanındaki yabancı anahtar kısıtlamasında ayarlamanız ON DELETE CASCADE veya önce üst nesnenin silinmesini engelleyen alt nesneleri silmek için kendi kodunuzu kullanmanız 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 ve Order sınıflarını kullanırCustomer. Sınıf tanımları kısa için gösterilmez.

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.

Not

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ı kullanabilir.

Ayrıca bkz.