Entity Framework .NET uygulamaları için bir nesne-ilişki eşleme çerçevesidir. Nesne-ilişki eşleme, veritabanı sorgularının ve işlemlerinin nesne yönelimli programlama dilleriyle kullanılmasına imkan tanır.
Entity framework tarafından uygulanan 3 farklı yaklaşım vardır. Bunlar:
Bunlardan database first ve code first en çok kullanılan yaklaşımlardır.
İstenilen özelliklere sahip entity sınıflarının oluşturulduğu Code First yaklaşımında entity framework, tanımlanmış olan entity sınıflarına göre veritabanı ve tabloları oluşturacaktır. Bu sayede, veritabanı kod aracılığıyla oluşturulmuş olur. .Net kodu çalıştırıldığında veritabanı oluşturulmuş olur.
Code First yaklaşımının avantajları:
Code First yaklaşımının dezavantajları:
Bu yaklaşımda önce veritabanı ve tablolar oluşturulur. Ardından, oluşturulan veritabanını kullanarak entity veri modeli oluşturulur.
Database First yaklaşımının avantajları:
Database First yaklaşımının dezavantajları:
.edmx dosyası, veritabanı şemasını tanımlayan büyük bir XML dosyasıdır.
Model First yaklaşımında varlıklar, ilişkiler ve kalıtım hiyerarşileri doğrudan .edmx’in tasarım yüzeyinde oluşturulur. Bir başka deyişle, önce Entity Framework Designer aracı kullanarak model oluşturulur. Model kavramı burada, tasarım araçlarıyla oluşturulmuş görsel bir diyagramı temsil etmektedir. Ardından oluşturulan modelden veritabanı oluşturulur. Oluşturulan model aracılığıyla veitabanı nesneleri ve verilerine erişilir.
Model First yaklaşımının avantajları:
Model First yaklaşımının dezavantajları:
Database migrations; verileri bir veya daha fazla kaynak platformdan başka bir hedef veritabanına taşımaktır. Bir veritabanından diğerine geçiş yapmanın birkaç nedeni vardır. Örneğin, bir işletme bulut tabanlı bir veritabanına geçerek kaynaklardan tasarruf etmek isteyebilir.
Bu yazıda entity framework yaklaşımlarından olan database-first, code-first, model-first yaklaşımlarının tanımlarını, avantajları ve dezavantajlarını özetleyerek inceledik. Bu yaklaşımlardan en iyisi hangisidir sorusunun cevabı aslında tamamen geliştirmekte olunan uygulamaya bağlıdır.
Kaynakça