Entity Framework Core Nedir ?
Entity Framework Core, 2016 yılında tanıtılan bir ORM aracıdır ve .NET Core platformunda geliştirilmiştir. Yazılım geliştiriciler için veri tabanıyla etkileşim kurmayı kolaylaştırır, verileri saklamak ve erişmek için bir ADO.NET mekanizması sunar. ORM ile ilgili yazıma buraya tıklayarak ulaşabilirsiniz.
Bu ORM aracı, hafif, esnek ve açık kaynaklı bir veri erişim teknolojisidir. Entity Framework Core, önceki sürüm olan Entity Framework 6’dan sonra gelir ve .NET Core platformunda kullanılmak üzere tasarlanmıştır. Bununla birlikte, .NET Framework 4.5 ve sonraki sürümlerle de uyumludur.
LINQ (Language Integrated Query) kullanarak sorgular oluşturmaya izin verir. LINQ, .NET dillerine SQL benzeri sorgu yetenekleri kazandıran bir Microsoft .NET Core bileşenidir. LINQ’in sunduğu en büyük avantajlardan biri, derleme aşamasında hataları yakalayarak güvenli sorgular oluşturmamıza olanak sağlamasıdır.
Entity Framework Core, LINQ ile yazılan sorguları veritabanına göndermek, sonuçları almak ve ilgili nesnelere dönüştürmek gibi işlemleri yönetir. Bu sayede veritabanı işlemleri için tekrar tekrar kod yazmak zorunda kalmayız ve farklı veritabanı sistemleri arasında kolayca geçiş yapabiliriz.
Bu teknolojiler, çalışma zamanında değil derleme aşamasında hataları görerek güvenli bir geliştirme süreci sağlar. Entity Framework Core, veritabanı işlemlerini soyutlayarak geliştiricilere büyük kolaylık sağlar ve farklı veritabanlarına bağlanıp işlemler yapmak için az kod yazmamızı sağlar.
Entity Framework Core Avantajları
- ORM’nin avantajları ile hemen hemen aynıdır.
- Platform bağımsız bir sistemdir.
- Açık kaynaklıdır.
- Veri tabanı ile ilişkilerin manuel yürütülmesine gerek yoktur.
- Daha güvenlidir.
- Veri tabanı ile güvenli bir şekilde çalışmamıza imkan sağlar.
- Veri tabanı ile ilgili tüm süreçleri soyutlar.
- Kodun okunabilirliğini artırır.
- Kodun daha sürdürülebilir olmasına imkan sağlar.
- Uygulama geliştirme süresini azaltması SQL Injection gibi zafiyetlere karşı doğal koruması vardır.
- Veri tabanı ile ilgili tüm işlemlerinizi kod içerisinden yapmamıza imkan verir.
Entity Framework Core Dezavantajları
- Veritabanı ile ilgili tüm süreci soyutladığından dolayı biraz yavaştır.
- Entitiy Framework Core tarafından oluşturulan sorgulara tamamen bir müdahalemiz söz konusu değildir.
Entity Framework ve Entity Framework Core Arasındaki Farklar Nelerdir?
- Entity Framework genel bir araç iken Entity Framework Core veri sağlayıcısına göre kurulur ve kullanılır.
- Entity Framework sadece Windows tabanlı .NET platformunda kullanılırken Entity Framework Core platform bağımsız olarak geliştirme yapmaya imkan verir.
Entity Framework Core Kurulumu
Entity Framework Core bir NuGet paketi olduğundan Visual Studio geliştirme ortamında projeye sağ tıklayıp Manage NuGet Packages seçeneği ile kurulum yapılabilir.
Burada üstteki metin kutusuna indirmek istediğimiz paketin adını yazıp arıyoruz. Aradığımız paketi açıyoruz.
Aradığımız paketin detaylarına girdiğimizde sürüm seçiyoruz ve Install diyoruz.
Eğer komutlarla indirmek isterseniz;
Package Manager Console alanına aşağıdaki komut yazılarakta indirilebilir.
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Add-Migration, Scaffold-DbContext, Update-Database gibi komutları kullanmak için aşağıdaki gibi Tools paketi kurulabilir.
Install-Package Microsoft.EntityFrameworkCore.Tools
Entity Framework’ün Temel Öğeleri
- DbContext : Entity Framework’ün en önemli sınıfıdır, veritabanı ile ilişkili tüm nesnelerin yönetimini yapar.
- DbSet : Veritabanındaki bir tablonun karşılığını temsil eder ve CRUD işlemlerini gerçekleştirmek için kullanılır.
- Entity : Veritabanındaki tablolara karşılık gelen nesnelerdir.
- Mapping : Entity ile veritabanı tabloları arasındaki ilişkiyi tanımlar.
- Configuration : Entity Framework’ün çalışma şeklini ve veritabanı bağlantısını yapılandırır.
- Migration : Veritabanının yapısını güncellemek için kullanılır.
- Command : Veritabanındaki verileri manüpile etmek için kullanılır.
- Query : Veritabanındaki verileri sorgulamak için kullanılır.
- Validation : Entities üzerinde doğrulama yapar. (Fluent API)
- Concurrency : Veritabanındaki verilerin birden fazla kullanıcı tarafından aynı anda değiştirilmemesi için kullanılır.
Entity Framework Core İle Kullanılabilen Veri Tabanları Nelerdir?
- SQL Server
- PostgreSQL
- MySQL
- Oracle
- SQLite
- InMemory