Bir önceki yazımızda Linq konusuna giriş yapmış, örnek olarak bir diziye Select sorgusu yapmıştık. Bu bölümde veri tabanı ile çalışıp, select, insert, update ve delete işlemlerine örnekler yapacağız.
Öncelikle MS SQL Server 2012 Express’i açıp ilişkisel bir veritabanı oluşturuyorum.
Veritabanımda 3 adet tablo olacak öğrenci tablosu, ders tablosu ve sınav notları tablosu.
Daha sonra Visual Studio’yu açıp yeni bir consol projesi yaratıyorum. Projeyi yarattıktan sonra Solution Explorer’da projemin üzerine sağ tuşla tıklayarak Add New Item seçeneğini seçip bir Linq to Sql Classes ekliyorum.
Örnekteki gibi Okul olarak isimlendirdikten sonra projeme ekliyorum.
Açılan pencereye tablolarımı sürükleyip bırakmak için Server Explorer ‘a gelip yeni bir connection ekliyorum. Daha sonra tablolarımın hepsini seçip Linq to Sql Classes ekledikten sonra açılan pencereye sürükleyip bırakıyorum.
Resim-2
Resim-3
Artık biraz kod yazmaya başlayabiliriz. Program.cs’yi açıp aşağıdaki kodlamaları yaparak veri tabanına yeni bir öğrenci kaydı oluşturuyorum.
Integer değer döndüren InsertOgr isimli methodu inceleyelim.
İlk satırda var keyword’ü ile dc isminde bir OkulDataContext tipinde data context nesnesi oluşturdum. Bunu bir önceki adımda yaptığımız işlemler sonucu Visual Studio otomatik oluşturmaktadır. Bu nesnede “.” ya bastığımız zaman intellisense menüsünde tablo isimlerimizin sonuna İngilizcede çoğul anlamına gelen “s” ekini alarak geldiğini görmekteyiz. Bu nesne sayesinde veri tabanı işlemlerimizi yöneteceğiz.
Resim-4
Resim-5
Diğer veritabanı işlemleri için select, update ve delete methodları da aşağıdaki gibi oluşturdum.
Resim-6
Şimdi bir öğrencinin notlarını ekrana yazdıralım.
Aşağıdaki gibi bir öğrenci kaydını GetOgrById methodu ile getirip öğrencinin ders adı ve sınav notu bilgisine erişerek ekrana yazdırabiliyorum. Dikkat ederseniz diğer tablolarım ile ilgili hiçbir method çağrımı ya da hiçbir sorgu yapmamış olmama rağmen “ogr” nesnem üzerinden bu bilgilere de erişebiliyorum.
Resim-7
Resim-8
Bir sonraki LINQ yazımda görüşmek üzere. Sürçü lisan ettiysem affola.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar