LINQ to SQL ile ilgili olarak en çok sorulan sorulardan birisi de Insert, Update ve Delete işlemlerinin nasıl gerçekleştirilebileceği. LINQ ifadelerinde Insert, Update ve Delete gibi anahtar kelimelerle sorgular yazılamadığını söylemeye gerek yok sanırım:) Dolayısıyla LINQ to SQL'de amaç veri nesneleriyle çalışmak ise bir şekilde bu tip işlemleri de gerçekleştirebilmek gerekecektir. LINQ to SQL Classes (.dbml) dosyaları veritabanında yer alan veri nesnelerini doğrudan uygulamamıza class'lar olarak aktarmamızı sağlamaktadır. Örneğin Northwind veritabanındaki Product tablosunu uygulamamızda veri class'ı olarak oluşturduğumuzda DataContext nesnesinin içerisindeki Products özelliği(property) Products tablosundaki ürünleri koleksiyon olarak döndürecektir. İşte bu property'nin bazı metotları bizim Insert, Update ve Delete gibi işlemleri gerçekleştirebilmemizi sağlayacaktır. Bu metotlardan;
- InsertOnSubmit, Insert işlemini
- DeleteOnSubmit, Delete işlemini
gerçekleştirebilmektedir. Peki Update işlemi nerede? Update işlemini ise LINQ sorgusu sonucundan gelen kayıt veya kayıtların değerlerini değiştirerek gerçekleştirebileceğiz. Buradaki her üç işleminde sonuçlarının veritabanına aktarılabilmesi için DataContext nesnesinin SubmitChanges isimli metodunun çalıştırılması yeterli olacaktır. Aşağıdaki kod parçalarında LINQ to SQL'de veri ekleme, silme ve güncelleme işlemlerinin nasıl yapılabileceği görülmektedir. Kodlarda yer alan northWind adındaki nesne DataContext nesnemizdir.
Product eklenecekUrun = new Product() { ProductName="Acer Aspire 5100", UnitPrice=1290, UnitsInStock=15, CategoryID=9 };
northWind.Products.InsertOnSubmit(eklenecekUrun); // Eklenecekler listesine yeni bir ürün eklendi
Product guncellenecekUrun = northWind.Products.First(u => u.ProductID == 69);
guncellenecekUrun.ProductName = "HP Pavilion 3355"; // Seçilen ürünün ProductName özelliği değiştirildi
Product silinecekUrun = northWind.Products.First(u => u.ProductID == 79);
northWind.Products.DeleteOnSubmit(silinecekUrun); // Seçilen ürünü silinecekler listesine at
northWind.SubmitChanges(); // Yukarıda yapılan güncellemeler veritabanına gönderildi
Hiç yorum yok:
Yorum Gönder