1 Ekim 2010 Cuma

Linq To SQL

Language Integrated Query, yani kısaca LINQ. Daha önce uzun uzadıya açıkladığım C#3.0 yeniliklerinin hepsinin ortak amacı Linq teknolojisini oluşturmaktı. Gerçekten de C# için dönüm noktalarından biri oldu diyebiliriz. Satırlarca kodu oldukça kısaltan, daha okunur daha profesyonel bir kodlama ve bunun sonucunda da daha performanslı daha efekif bir kodlama getirdi bizlere. Şimdi kısaca linq yapısını sql kullanarak CRUD(create,read,update,delete) işlemlerini kullanarak anlatmaya çalışalım.

Öncelikle veritabanına erişmek için aşağıdaki adımları yapmamız gerekir,

Projemize add new item diyip,

LinqtoSql Classes'i seçiyoruz. Ardından çıkan sayfada, server explorerdan uygun veritabanını kullanarak tablolarımızı sürükleyip boş kısma şekildeki gibi sürüklüyoruz,

Create: Insert işlemidir. Veritabanına kayıt eklenmesi durumda nasıl bir yol izleyeceğimizi kısaca örnek üzerinden gösterirsek;

//Örnek, Kategori tablosuna bir kategori insert edelim.
Kategori yeni = new Kategori { KategoriAdi = "Kurutma Makineleri" };

context.Kategoris.InsertOnSubmit(yeni);//Kuyruğa soktuk aslında burda,daha onaylanmadı

context.SubmitChanges(); //Değişiklikleri onaylatıyoruz

Yukarda da gördüğümüz gibi herhangi bir insert komutu vs. yok aslında. C#3.0 yeniliklerinden
Object Initializer ile yeni nesne yarattık. New Kategori'ye dikkat ediniz.

Update: İsimden de anlaşılacağı üzere güncelleme işlemlerini nasıl yapacağımızı inceleyeceğiz. Önce Update edilecek entity yüklenir. Örneğin Id'si 1 olan veri üzerinde değişiklik yapalım. Üstte de dediğim gibi önce yükleme işlemini yapalım;

Kategori ktr = context.Kategoris.FirstOrDefault(k => k.KategoriId == 1);

Eğer yüklenmiş bir entity'nin property'sinde değişiklik yapılırsa otomatik olarak update kuyruğuna atılır. KategoriAdi'ni değiştirmek isteyelim;

ktr.KategoriAdi = "Deneme";

Kuyrukta bekleyen tüm entity'ler onaylanırlar ve gerekli işlemler sql sunucusuna yaptırılır.

context.SubmitChanges();

Delete: Delete işlemi de isminden anlaşılacağı üzere verilerin silinmesi anlamına geliyor. Kullanım açısından insert işlemine benziyor.(önce kuyruğa atıp, daha sonra onaylanma bakımından) Örneğin yukarıda eklediğimiz satırı silelim. Id'sini kontrol ettiğimde 33 olduğunu gördüm. Yani şimdi id'si 33 olan ürünü silelim;

Kategori silinen = context.Kategoris.FirstOrDefault(k => k.KategoriId == 33);
context.Kategoris.DeleteOnSubmit(silinen);//kuyruğa attık
context.SubmitChanges();//onayladık

0 yorum: