Ümmühan Kurt
HBK SOFTWARE
Published in
5 min readApr 13, 2021

--

Merhaba arkadaşlar, bu yazımızda sizlere Entity Framework’den bahsedeceğiz.

Entity Framework, ilişkisel veri tabanları ile nesneye yönelik programlama arasında bir köprü görevi görür. Veri tabanı işlerimizi büyük ölçüde kolaylaştıran bir yapıdır. Program sırasında oluşturduğumuz nesneyi veri tabanındaki tabloya bağlayan ve veri alışverişini sağlayan bir tekniktir. Yapısı itibariyle MVC mimarisine uyan bir sistemdir. Arka planda Ado.Net sınıflarını kullanarak veri tabanı işlerimizi tamamen kodlar içerisinde halledebildiğimiz bir kolaylık sağlar. Dilerseniz, basit bir form uygulaması ile veri tabanındaki verileri listeleyerek anlamaya çalışalım.

Proje oluşturma-1

Öncelikle bir proje oluşturuyoruz.

Proje oluşturma-2

Oluşturduğumuz proje Windows Form uygulaması olacak. Bu yüzden Windows Forms(.NET Framework)’u seçiyoruz.

Form Designer

Verilerin getirileceği alan için bir adet Toolbox >Data>DataGridView’i ekrana şekildeki gibi sürüklüyoruz. Eğer Toolbox sizde görünmüyorsa View menü barından Toolbox’a tıklayarak görünmesini sağlayabilirsiniz.

DataGridView

DataGridView için Properties>(Name) kısmından “dgwProducts” olarak isimlendirdim. Farklı isimlendirmeler kullanabilirsiniz.

Veri Tabanı Oluşturma

Veri tabanı olarak Northwind’in veri tabanını kullanacağım. Dilerseniz, kendi veri tabanınızı oluşturabilir veya bu linkten Northwind veri tabanını indirip projenize bağlayabilirsiniz. İndirdiğimiz veri tabanı oluşturma kodunu “new query”(yeni sorgu) seçeneğine tıklayarak yapıştırıyoruz ve execute(yürüt) ediyoruz. Eğer sizde SQL Server Object Explorer görünmüyorsa, View menü barından SQL Server Object Explorer’a tıklayarak görünmesini sağlayabilirsiniz.

Entity Framework’de veri tabanını yapılandırmak için en temel basamak bir “DbContext” sınıfı oluşturmaktır. Bunu yapmak için projemizde sağ tıklayarak bir sınıf ekliyoruz.

DbContext Sınıfını Oluşturma-1
DbContext Sınıfını Oluşturma-2

Bu sınıfın adını “NorthwindContext” yapıyoruz. Ben veri tabanı olarak Northwind’i kullandığım için DbContext sınıfının adını “NorthwindContext” yaptım.

Sınıfı Public Yapma

Sınıfımızı “public” yapmayı unutmuyoruz. Bunu yapmamızın sebebi ise, diğer sınıflardan bu veri tabanı sınıfına ulaşmak istememizdir.

Ek olarak projeye Entity Framework kütüphanesini dahil etmemiz gerekiyor. Bunun için projeye sağ tıklayıp “Manage NuGet Packages” kısmından Entity Framework kütüphanesini projemize dahil ediyoruz.

Entity Framework Kütüphanesinin Dahil Edilmesi-1

“Browse” sekmesinden “Entity Framework” yazdıktan sonra “install” ederek kütüphaneyi projemize dahil ediyoruz.

Entity Framework Kütüphanesinin Dahil Edilmesi-2

“NorthwindContext” sınıfının bir veri tabanı nesnesi yani “DbContext” olabilmesi için “NorthwindContext” sınıfımızın “DbContext ” sınıfından kalıtılması lazım. Bunun için System.Data.Entity kütüphanesini sınıfa dahil etmemiz gerekiyor.

DbContext’ten Kalıtım

Projemizdeki nesnelerin hangi veri tabanı tablosuna bağlayacağımızı burada belirtmemiz gerekiyor. ”Benim şöyle bir nesnem var o da veri tabanındaki şu tabloya karşılık geliyor” diyebilmemiz lazım. Şimdi proje üstünde bir klasör oluşturuyoruz bu klasörün adı “Entities”(varlık) olacak.

Entities Klasörünün Oluşturulması

Bu klasöre sağ tıklayarak bir sınıf ekliyoruz.

Entities Klasörüne Class(Sınıf) Eklenmesi

Bu sınıf veri tabanımızdaki tabloya karşılık gelecek olan nesnenin kendisidir. Ben bu sınıfın adını “Product”(Ürün) yaptım çünkü benim veri tabanımda “Products“(ürünler) adında bir tablo var. Bu tablonun kolonlarını bu sınıfa özellik olarak ekliyorum. Sınıfı “public” yapmayı unutmuyoruz.

Product Class’ının Özellikleri

Şimdi NorthwindContext sınıfında bir DbSet<> oluşturuyoruz. DbSet, “Product”(ürün) içindir. Bu şu demek “Benim elimde product(ürün) var ve bu product veri tabanındaki Products’a(ürünlere) karşılık geliyor. Bunu yaparken de using kısmına EntityFramework.Entities’i eklememiz gerekiyor.

EntityFramework.Entities’i kullanarak NorthwindContext sınıfımızın veri tabanındaki Products tablosuna erişimini sağlıyoruz.

System.DataEntity Kütüphanesinin Sınıfa Dahil Edilmesi

EntityFramework.Entities’i kullanarak NorthwindContext sınıfımızın veri tabanındaki Products tablosuna erişimini sağlıyoruz

App.Config Konfigürasyonu

Entity Frameworkle ilgili son konfigürasyon projenin içinde App.Config kısmındadır. Veri tabanı nesnesini kurmuş ve DbContext sınıfından kalıtmış olabiliriz fakat projemizin veri tabanına ulaşabilmesi için bir adet ConnectionString’e (Bağlantı uzantısına) ihtiyacı var.

Öncelikle adını vermemiz lazım. Name, Context sınıfının adıdır. ConnectionString etiketleri arasında data source(veri kaynağı) diyerek kendi veri tabanımızın adını yazarız. Herkesin bağlantı ismi farklı olabilir. Bu server’da hangi veri tabanına bağlanmamız gerektiğini ise initial catalog ile belirliyoruz. Integrated security seçeneğini true olarak ayarlıyoruz. Bu da ben bu bilgisayara login(oturum açtığım) olduğum hesap ile veri tabanına bağlanabiliyorum demek. Son olarak providerName’ini vererek etiketimizi kapatıyoruz.

ConnectionString Konfigürasyonu

Veri tabanı ile ilgili ayarlarımızı tamamladık, şimdi ise form uygulamamıza geçebiliriz.

Formun üstüne çift tıklayarak Form1’in Form1_Load metoduna gidiyoruz.

Formun Metoduna Gitme

Burada veriler görüntülenecek. Using bloğu sayesinde NorthwindContext sınıfını kalıtarak bir “context” nesnesi oluşturuyoruz. Burada amacımız DataGridView’da tüm ürünleri listelemek.

Form Metodunun İçinde DataGridView’in Çağırılması

Daha sonrasında oluşturduğumuz “context” nesnesinden veri tabanındaki Products tablosundan verileri çeken ve bunları listeleyen metodu yazıyoruz.

Metod

ToList() metodu verilerin listelenmesini sağlar. Bu metoda NorthwindContext sınıfımızı “DbContext” sınıfından kalıttığımız!! için kullanabiliyoruz.

Product Tablosundaki Veriler
DataGridView’a Gelen Veriler

Son olarak projeyi çalıştırdığımızda ,veri tabanındaki “Products”(ürünler) tablosundaki verilerin form uygulamamızda ekrana yansıdığını göreceğiz. Görmüş olduğunuz gibi fazla çaba harcamadan verilerimizi form üzerinden listeledik. Entity Framework’ü form ve web uygulamalarınızda rahatlıkla kullanabilirsiniz.

Çalışmanın tamamlanmış haline buradan ulaşabilirsiniz .

İşinize yaraması dileğiyle..

Ümmühan Kurt

Kaynaklar :

--

--