Entity Framework Yaklaşımları ( Code First, Model First, Database First )

Entity Framework ile uygulama geliştirirken üç farklı yaklaşımdan birini kullanabiliriz. Bu yaklaşımlar:

  • Database First
  • Model First
  • Code First

erenguvercin-databasefirst codefirst modelfirst

Database First

Eğer hali hazırda bir veritabanımız varsa ve bu veritabanı uzun zamandır kullanılıyorsa bu yaklaşım tercih edilir. Bu yaklaşım diğer yaklaşımların aksine zaten olan bir veritabanı üzerinden çalışma yapılması mantığına göre işler. Tabi bu yaklaşımı daha önce veritabanınız olmasada kullanabilirsiniz, bunun için veritabanını klasik yöntemlere göre sql server üzerinden oluşturmalısınız.
Bu yöntemde database üzerinde herhangi bir değişiklik yapmak istersek, sql server üzerinden manual olarak yapmalıyız. Bu durumun projeye yansıması içinse “update model from database” tıklamamız gerekli.

Model First

Eğer bir veritabanına sahip değilseniz, direk visual studio üzerinden model kullanarak oluşturabilirsiniz. Burada gerçekleştirdiğimiz değişiklikleri sql’e tanıtmak için “generate database from” tıklamamız gerekir. Eğer kod yada sql yazmayı sevmiyorsanız, bu yöntemi tercih edebilirsiniz. Bu yöntemde genellikle kodlama yerine design ile çalışırsınız.
Projeniz çok sayıda tablo içeriyor ve kompleks bir yapıya sahipse bu yöntem kullanışlı olacaktır. Büyük çaplı kurumsal projelerde tercih edilebilir.

Code First

Eğer kodlama yapmayı çok seviyorsanız ve veritabanımı kodlama ile oluşturmak istiyorum diyorsanız bu yöntem size göre. Bu yöntemde design yapmak yerine kodlama yapıyorsunuz. Bu yaklaşım ile tüm kontrol elinizde oluyor, diğer yaklaşımlardaki gibi arka tarafta otomatik kodlar üretilmiyor. Yazmış olduğunuz kodlar veritabanını ve tablolarınızı oluşturacaktır.
Tablo sayısı az olan projelerde kullanılması tercih ediliyor.
Yaklaşımlardan hangisini seçeciğimizle ilgili güzel bir akış şeması oluşturmuş Julia Lerman. Aşağıda sizlerle paylaşıyorum.
erenguvercin-model first database first code first
* Entity Framework Yaklaşımları ve Karşılaştırılması, Erişim Tarihi: 08.12.2018, http://www.erenguvercin.com/2013/05/entity-framework-yaklasmlar-ve.html