Bagikan melalui


Sisipkan, Perbarui, dan Hapus Operasi

Anda melakukan operasi Insert, Update, dan Delete di LINQ ke SQL dengan menambahkan, mengubah, dan menghapus objek dalam model objek Anda. Secara default, LINQ ke SQL menerjemahkan tindakan Anda ke SQL dan mengirimkan perubahan ke database.

LINQ ke SQL menawarkan fleksibilitas maksimum dalam memanipulasi dan mempertahankan perubahan yang Anda buat pada objek Anda. Segera setelah objek entitas tersedia (baik dengan mengambilnya melalui kueri atau dengan membuat objek baru), Anda dapat mengubahnya sebagai objek umum dalam aplikasi Anda. Artinya, Anda dapat mengubah nilainya, Anda dapat menambahkannya ke koleksi Anda, dan Anda dapat menghapusnya dari koleksi Anda. LINQ ke SQL melacak perubahan Anda dan siap untuk mengirimkannya kembali ke database saat Anda memanggil SubmitChanges.

Nota

LINQ ke SQL tidak mendukung atau mengenali operasi penghapusan kaskade. Jika Anda ingin menghapus baris dalam tabel yang memiliki batasan terhadapnya, Anda harus mengatur ON DELETE CASCADE aturan dalam batasan kunci asing dalam database, atau menggunakan kode Anda sendiri untuk terlebih dahulu menghapus objek anak yang mencegah objek induk dihapus. Jika tidak, pengecualian akan terjadi. Untuk informasi selengkapnya, lihat Cara: Menghapus Baris Dari Database.

Kutipan berikut menggunakan kelas Customer dan Order dari sampel database Northwind. Definisi kelas tidak ditampilkan untuk singkatnya.

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()

Saat Anda memanggil SubmitChanges, LINQ ke SQL secara otomatis menghasilkan dan menjalankan perintah SQL yang harus dimiliki untuk mengembalikan perubahan Anda ke database.

Nota

Anda dapat mengambil alih perilaku ini dengan menggunakan logika kustom Anda sendiri, biasanya dengan cara prosedur tersimpan. Untuk informasi selengkapnya, lihat Tanggung Jawab Pengembang Dalam Mengesampingkan Perilaku Default.

Pengembang yang menggunakan Visual Studio dapat menggunakan Object Relational Designer untuk mengembangkan prosedur tersimpan untuk tujuan ini.

Lihat juga