Merhaba arkadaşlar bugün sizlere Entity Framework nedir? Entity Framework türleri nelerdir? Entity Framework’un avantajları ve dezavantajları nelerdir? gibi sorulara cevap verip bir tane de Entity Framework ile C# Form üzerinden listeleme işlemlerini yaptığımız bir kod örneği oluşturacağız.
Entity Framework Nedir?
Entity Framework, Object Relational Mapping (ORM) araçlarından birisidir. Peki ORM Nedir? ORM, ilişkisel veritabanları ile nesneye yönelik programlama (OOP) arasında bir köprü görevi gören ve veritabanındaki verileri yönetmek için kullanılan bir programlama teknolojisidir ve SQL komutlarına gerek olmadan bizlere yazılım geliştirme imkanı sunar. Bunları az sonra bir örnek üzerinden daha net anlayacaksınız. Şimdi avantajlarına ve dezavantajlarına bakalım.
Entity Framework Avantajları Nelerdir?
- Çok daha az kod ile çalışma imkanı sunar.
- Daha az kod ile çalıştığımız için kısa sürede çok iş yapmamızı sağlar.
- CRUD işlemleri olarak bildiğimiz Create, Read, Update, Delete işlemlerinin uzun kodlarından kurtulmamıza imkan sunar.
- Nesneye yönelik programlama(OOP) ile kod yazılmasına olanak sağlar.
- Entity Framework’un bir veritabanı bağlımlığı yoktur.
- Entity Framework bizlere oldukça esnek bir yapı sunmaktadır.
Dezavantajları Nelerdir?
- Performans olarak baktığımızda ADO.NET kadar hızlı çalışmamaktadır.
- Veritabanı kullanımı sırasında bilgi alışverişi yaparken kontrol tamamiyle bizde değildir.
- Çok basit veri işlemleri için karmaşık sorgular gönderebilmektedir.
- Her ne kadar veritabanı bağımlılığı olmasa da nesne bağımlılığı vardır.
Bu dezavantajları indirgemenin yöntemleri de mevcuttur. Bunları da sonraki yazılarımda paylaşacağım.
Entity Framework Türleri Nelerdir?
- Database First ( Var Olan Veritabanını Kullanma ) : Bu yöntemi kullanarak daha önce oluşturulmuş olduğumuz veritabanını projemize model olarak bağlayabiliriz. Database First yöntemini kullandığımızda gerekli sınıflarımız Entity Framework tarafından oluşturulacaktır.
- Model First ( IDE İle Yeni Veritabanı Oluşturma ) : Bu yöntemi kullandığımızda IDE ( Visual Studio ) üzerinden boş bir model dosyası oluşturarak veritabanını bu model üzerine tasarlamamıza imkan sağlıyor.
- Code First ( Kod Yazarak Yeni Veritabanı Oluşturma ) : Bu yöntemde sınıflarımızı IDE ( Visual Studio ) ile oluştururuz. Veritabanımız bu oluşturduğumuz sınıflardan ( class ) oluşur.
- Code First ( Var Olan Veritabanını Kullanma ) : Bu yöntemi uygularken kodlarımızı ve sınıflarımızı kendimiz oluştururuz. Veritabanımız, sınıfların ve modelin durumuna bakılarak güncellenir.
Buradaki türlerden şu an DB First yaklaşımını kullanarak bir örnek proje anlatacağım. Bu yazımda sadece listeleme yapacağım fakat ilerleyen zamanlarda Entity Framework ile CRUD işlemleri yapacağız.
C#Form ile Örnek Proje
Öncelikle Visual Studio üzerinden C# Form uygulamasını seçiyorum. Herhangi bir isim verebilirsiniz ben bundan sonraki süreci görsellerle anlatacağım. Örneklerde yeni başlayanlarda düşünülerek Türkçe Visual Studio kullanılmıştır. İngilizce kullananlarda az çok anlayacaklardır.
Adım 1)
Çözüm gezgininden projemize sağ tıklayıp Ekle > Yeni Öğe kısmına tıklıyoruz.
Adım 2)
Açılan pencerede ADO.NET Entity Data Model seçeneğini seçiyoruz.
Burada Model1 yerine başka bir isim de verebilirsiniz.
Adım 3)
Açılan pencerede Database First kullanacağımızı seçiyoruz.
Adım 4)
Kullanacağımız veritabanı adını seçiyoruz. Ben basit bir stok veritabanı oluşturdum. Buradaki stok bilgilerini EF kullanarak tabloya çekeceğim.
Adım 5)
Kullanacağımız EF versiyonunu seçiyoruz. Entity Framework 6.x seçebilirsiniz.
Adım 6)
Ekrana gelen pencereden kullanacağımız tabloları seçiyoruz. Ben Tbl_Urunler tablosunu kullanacağım.
Son dedikten sonra modelimiz oluştu. Ekrana aşağıdaki gibi tablomuzun bir görseli çıkacaktır.
Buraya kadar yaptıklarımız EF DBFirst yaklaşımı kullanarak Veritabanındaki bir tabloyu projemize dahil etmekti.
Adım7)
Şimdi C# Form ile Button ve DataGridView nesnelerini kullanarak bir veri listeleme ekranı tasarlayalım.
Son adım olarak butona tıklandığında çalışacak kodlarımız. Buradan inceleyebilirsiniz.
Çalıştığı andaki ekran görüntüsü ise aşağıdaki gibidir.
Okuyup bir şeyler katabildi isek yorum yaparak destek olmayı unutmayınız. Bu yazının hazırlanmasındaki büyük katkılarından dolayı Mustafa Ekinci arkadaşıma teşekkürlerimi iletiyorum.
Diğer C# Form örneklerime buradan ulaşabilirsiniz.