MediumEntity Framework Core — Nedir ?. Herkese merhabalar, Entity Framework… | by Yunus Emre | Medium
Sitemap
Yunus Emre

Yunus Emre

Yazılımcı

Entity Framework Core — Nedir ?

3 min readJan 20, 2023

Herkese merhabalar, Entity Framework Core ile ilgili sahip olduğum bilgileri tazelemek ve bu dünyaya yeni adım atmış meslektaşlarıma bilgi vermek amacıyla bu yazı serisine başlamaya karar verdim.
Not: Bu yazı giriş niteliğinde olup, Entity Framework ile ilgili genel bir bilgilendirme yapmak amacı ile yazılmıştır. Keyifli okumalar!

ORM (Object Relational Mapping) Nedir?
Entity Framework ile ilgili kısma başlamadan önce Entity Framework bir ORM aracı olduğundan ORM ile ilgili küçük bir açıklama yapmakta fayda var.

ORM, benim tanımım itibarıyla kod ile veritabanını hem ayıran hem de ilişklendiren yaklaşımdır. Tanımı biraz açmak gerekirse, veritabanı bağımsız veritabanı işlemleri yapabilmemizi sağlaması sebebiyle ayıran; veritabanına her türden erişimimizi sağlaması sebebiyle de ilişkilendiren tabirini kullanmayı seviyor ve uygun görüyorum.

Herkes tarafından kabul görmüş tanımı ise nesne tabanlı programlama dilleri yapısına uygun olmayan katı veritabanı sorguları yerine veritabanı yapısının bir nesne gibi düşünülerek yazılım geliştirilmesine olanak sağlayan programlama teknolojisidir.

1.Entity Framework Nedir?

Press enter or click to view image in full size

Entity Framework Core, son sürümü 7.0.2 olarak yayınlanmış, Microsoft tarafından geliştirilen ve .NET Framework ve .NET Core ile birlikte kullanılabilen bir ORM aracıdır. Entity Framework Core (EF Core) ve Entity Framework (EF 6.x ve önceki sürümler) arasında önemli farklar vardır. EF Core daha hafif ve performanslıdır ve veritabanı platformları için çoklu platform desteği sunar. Yazının bu kısmından sonra Entity Framework’ten kasıt 6.x sonrası sürümler yani Entity Framework Core olacaktır.

2.Entity Framework Neden Kullanılır?

  1. Veri erişim katmanının otomatik olarak oluşturulması: Entity Framework, veritabanındaki tablo ve sütunları otomatik olarak nesnelere dönüştürür, bu sayede kod yazmak için daha az zaman harcanır. (Database First)
  2. Veri tabanının otomatik olarak oluşturulması: Entity Framework, ilk maddede açıklananın tersi bir yaklaşım da desteklemektedir. Kod tarafında modellenen veri tabanı, migrationlar aracılığı ile ilgili sunucudaki veri tabanına aktarılabilir. (Code First) Bu iki madde ile ilgili ayrı bir yazı yazmayı planlıyorum.
  3. ORM (Object-Relational Mapping) desteği: Entity Framework, yazının giriş kısmında tanımlaması yapılan ORM araçlarından biridir. Yani veritabanındaki verileri, C# nesnelerine dönüştürür ve bu nesneler aracılığıyla veritabanı işlemlerini gerçekleştirir.
  4. Veritabanı platformları arasındaki esneklik: Entity Framework, farklı veritabanı platformlarını destekler, böylece aynı kodu kullanarak farklı veritabanlarında çalışabilirsiniz.
  5. Performans iyileştirmeleri: Entity Framework, sorguları oluştururken ve çalıştırırken performans iyileştirmeleri yapar, böylece veritabanı işlemleri daha hızlı gerçekleşir.
  6. Güncelleme yönetimi: Entity Framework, veritabanındaki değişiklikleri izler ve bu değişiklikleri C# nesnelerine otomatik olarak uygular, böylece veritabanı güncelleme işlemleri daha kolay hale gelir.

3.Entity Framework Nasıl Yüklenir?

Entity Framework yüklemek istediğiniz projeye sağ tıklayıp, manage nuget packages seçeniğini seçerek nuget ile Microsoft.EntityFrameworkCore kütüphanesini yükleyebilirsiniz. Ek olarak aşağıda belirtilen yöntemler de kullanılabilir.

Get Yunus Emre’s stories in your inbox

Join Medium for free to get updates from this writer.

.NET CLI ile Entity Framework yüklemek için aşağıdaki komutu kullanabilirsiniz:

dotnet add package Microsoft.EntityFrameworkCore

Package Manager Console üzerinden Entity Framework yüklemek için aşağıdaki komutu kullanabilirsiniz:

Install-Package Microsoft.EntityFrameworkCore

Not: Microsoft.EntityFrameworkCore EF Core'un en son sürümünün paket adıdır. Eğer belirli bir EF Core sürümünü kurmak istiyorsanız, Install-Package Microsoft.EntityFrameworkCore -version <version_number> komutunu kullanabilirsiniz.

4.Entity Framework’ün Temel Öğeleri

  1. DbContext: Entity Framework’ün en önemli sınıfıdır, veritabanı ile ilişkili tüm nesnelerin yönetimini yapar.
  2. DbSet: Veritabanındaki bir tablonun karşılığını temsil eder ve CRUD işlemlerini gerçekleştirmek için kullanılır.
  3. Entity: Veritabanındaki tablolara karşılık gelen nesnelerdir.
  4. Mapping: Entity ile veritabanı tabloları arasındaki ilişkiyi tanımlar.
  5. Configuration: Entity Framework’ün çalışma şeklini ve veritabanı bağlantısını yapılandırır.
  6. Migration: Veritabanının yapısını güncellemek için kullanılır.
  7. Command: Veritabanındaki verileri manüpile etmek için kullanılır.
  8. Query: Veritabanındaki verileri sorgulamak için kullanılır.
  9. Validation: Entities üzerinde doğrulama yapar. (Fluent Api)
  10. Concurrency: Veritabanındaki verilerin birden fazla kullanıcı tarafından aynı anda değiştirilmemesi için kullanılır.

Entity Framework’e basit bir giriş yapmak istediğim yazımı daha fazla uzatmadan sonlandırmak istiyorum. Serinin devamında Code First yaklaşımından, Entity Framework ile implementasyonundan ve bununla paralel olarak ihtiyaç oldukça Entity Framework’ün temel öğelerinden daha detaylı bir biçimde bahsedeceğim. Unuttuğum ya da eksik bıraktığım kısımlar olduysa affedin, okuduğunuz için teşekkür ederim. Umarım faydalı olmuştur, serinin devamında görüşmek üzere, hoşçakalın! :)

--

--