Linq To Sql İle CRUD (Insert, Update, Delete) İşlemleri

Bu makalemizde Linq To Sql ile Insert,Update ve Delete gibi veritabanı işlemlerine bakıyor olacağız.

Bu makalemizde Linq To Sql ile Insert,Update ve Delete gibi veritabanı işlemlerine bakıyor olacağız.

Linq mimarisi özellikle programatik ortamlarda tasarlanan nesneler üzerinde, SQL cümlelerine benzer ifadeler ile sorgulamalar yapmamızı sağlar.Database tarafında yer alan tablo(Table), saklı yordam(Stored Procedure), görünüm(View), fonksiyon(Function) gibi unsurlarında programatik tarafta birer varlık(Entity) olarak ifade edilebilmesi, LINQ kurallarının SQL üzerindede gerçekleştirilebilmesini sağlamaktadır. Burada varlık katmanı(Entity Layer) olarakda düşünebileceğimiz yapı üzerinde yer alan nesneler, veritabanından çekilen sonuçları saklayabilmektedir. Bunun yanında programatik ortamdaki varlıklar üzerinde yeni varlık oluşturma, güncelleme, silme gibi operasyonlarda yapılabilmektedir. İşte bu makalemizde çoğunlukla CreateRetrieveUpdateDelete (CRUD) işlemleri olarak belirtilen bu işlemleri nasıl yapabileceğimizi görüyor olacağız.

Burada dikkat edilmesi gereken önemli noktalardan birisi New Project seçimi sonrası karşımıza çıkacak olan iletişim penceresinden .Net Framework 3.5 versiyonunun işaretlenmiş olmasıdır(Bu bize gerekli Assemblylerin yüklenmesini sağlaycaktır).Bu işlemde dikkat ederek bi Console Application oluşturuyoruz.

Bu adımdan sonra entity sınıflarının kolay bir şekilde oluşturulmasını sağlayan LINQ To SQL Class öğesini projemize eklememiz gerekmektedir(Dbml Classımız).

Bunun için Projemize sağ tıklayıp Add>New Item>Linq To Sql Classes diyoruz ve Dbml Classımızın adını Data.dbml olarak değiştirebilirsiniz.(Adı size Kalmış Ben Data olarak belirttim projede)

Böylece veritabanı üzerindeki nesnel yapıları programatik ortamda ifade edebileceğimiz Database Markup Language(dbml) dosyası otomatik olarak oluşturulmaktadır. Data.dbml dosyasnın kod tarafına bakıldığında DataContext tipinden türetilmiş olan bir sınıfın yazıldığı görülmektedir. Şimdi yapmamız gereken, üzerinde işlemler gerçekleştirilecek olan veritabanı nesnelerini tasarım ortamına sürükleyip bırakmaktır. Bunun için sol tarafta yer alan Server Explorer alanından veritabanındaki bir tabloyu alacağız.Bunun öncesinde SqlServer tarafında bir veritabanı oluşturmuş olmanız gerekmektedir.bunun için basit anlamda herhangibi bir veritabanınızda Urunler tablosu oluşturabilirsiniz.(UrunAdi,Fiyati,StokDrumu gibi alanlar işinizi görücektir.)

Server Explorer alanında Connection sağlayıp veritanımıza ulaşıyor ve Urunler tablomuzu süreükleyip dbml dosyasının üzerine bırakıyoruz.



Buradakı tabloyu artık bir sınıf alanları ise property olarak düşünebilirz.Dbml dosyamızı kaydedip kapatabilir ve Program.cs tarafına geçebiliriz.Burada herhangi bir linq sorgulaması yada bir crud işlemi yapabilmemiz için dbml classımızı örneklememiz gerkemektedir.


DataDataContext data = new DataDataContext();



//insert işlemi

            data.Urunlers.InsertOnSubmit(new Urunler() { UrunAdi = "bilgisayar", Fiyati = "25", Marka = "Casper" });

            //değişikliklierin veritabanında gerçekleşmesi için 

            data.SubmitChanges();



Ne kadar kolay değil mi? Store proc bile yazmadan veritabanımıza veri girdik.


//update işlemi yapalım

            //veritabanında var olan sadece bir kayıt üzerinde update işlemi yaparken güncelleyeceğimiz ürünü First metodunda Lambda ifadelerini kullanarak gerekli kaydı sanki bir sql kodu gibi yazarak alabiliriz.

            //buradaki datacontext nesnemizi örneklerken verdiğmiz isimdir.Yani datacontext üzerinde bulunan urunler tablosundan belirli bir kaydı seçtiriyoruz

            Urunler guncellencekUrun = data.Urunlers.First(u => u.UrunId = 5);

            guncellencekUrun.UrunAdi = "Değiştirilmiş ÜrünAdi";

            guncellencekUrun.Fiyati = "50";

            data.SubmitChanges();




Urunler silinecekUrun = data.Urunlers.First(u => u.UrunId = 5);

            data.Urunlers.DeleteOnSubmit(silinecekUrun);

            data.SubmitChanges();



//UrunId'si 5 olan ürün silindi

  • Etiketler;
Mustafa Ülkü
www.gezicez.com
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git