database entity framework

Entity Framework Nedir?

Entity Framework (EF)’ün tanımına geçmeden önce ORM’nin kısaca tanımı ile başlamak istiyorum. ORM yani “Object Relational Mapping” geliştirilen uygulama ile veritabanı arasında köprü olan bir araçtır. Veritabanındaki tabloları class’lara, kolonları property’lere, kayıtları ise objelere dönüştürerek uygulamanın direkt olarak veritabanına erişmesine gerek kalmadan tüm veri tabanı işlemlerini gerçekleştirir. Böylece veritabanı işlemlerinin Sql kodları yazmadan nesneler üzerinden kolayca yapılmasını sağlar. Bunu basit bir örnekle şöyle anlatabiliriz. Veri tabanına yapılacak olan CRUD (Create Read Update Delete) işlemleri ORM aracı tarafından algılanır ve yapılacak olan işlem Sql kodlarına dönüştürülür. Bu işleme “Code Generating” denir.

Günümüzde kullanılan birçok ORM aracı bulunmaktadır. Örneğin; Java tabanlı olarak Hibernate, Flex’de Athena Framework, Delphi’de ECO gibi. Entity Framework ise Microsoft tarafından geliştirilen .Net tabanlı bir ORM aracıdır. Entity Framework ile kolayca CRUD işlemleri yapılabilir. Peki, neden ORM? Çünkü;

–          Veritabanı işlemleri ile ilgili kod yazımı en aza ineceğinden minimum zamanda maksimum iş çıkartmayı sağlar.

–          OOP düzeninde kod yazmayı sağlar.

–          Veritabanı olarak esnek yapıya sahiptir. Örneğin yazdığınız proje MSSQL ile çalışmakta ve birden Oracle’a geçmeniz istendi. Bunu yapabilmek için birçok ayar gerekirken Entity Framework ile direkt geçiş yapabilirsiniz.

–          Veritabanı bağımlılığı yoktur. Yani EF’yi oluşturmadan önce veritabanı tablo ve kolonlarını oluşturmalısınız gibi bir kural yoktur. Siz EF ile modellemeyi yaparken olmayan tabloları ve kolonları sizin yerinize açacaktır.

–          Maintenance daha kolaydır.

Her ne kadar EF kodlama olarak zaman kazandırsa da performans olarak ADO.Net kadar hızlı değildir.

Model Katmanı Nedir?

Model katmanını en genel biçimde tanımlayacak olursak; veritabanı işlemlerinin yapıldığı yerdir diyebiliriz.Bu tanımı biraz genişletmek gerekirse, uygulamanın veriye erişimini ve iş mantığını gerçekleştiren nesneleri içeren katmandır.Yani veritabanı veri eklenirken ya da veri çekilirken hangi kurallara göre yapilacağı ve bu işlemlerin yapıldığı yerdir.Bu katmanda Linq To SQL dosyaları, Entity Framework dosyaları ya da data taşıyan nesneler bulunur.Model katmanı,Controller katmanı ile iletişim halindedir.Model katmanında ORM araçları sayesinde veritabanı tablolarını nesne olarak kullanabiliriz.

 

entity framework nedir

Entity Framework ilk olarak .Net Framework 3.5 SP1 ve Visual Studio 2008 SP1 ile 11 Ağustos 2008 tarihinde gelmiştir.

Entity Framework ile 4 farklı yöntem ile proje geliştirilebilir. Bu yöntemler;

–          Model First (New Database)

–          Database First (Existing Database)

–          Code First (New Database)

–          Code First (Existing Database)

Model First (Önce Model): Bu yöntemde Visual Studio üzerinde boş bir model dosyası (.edmx) eklenerek veri tabanı bu model üzerinde oluşturulur.

Database First (Önce Veritabanı): Bu yöntemde hali hazırda var olan veritabanı projeye model dosyası ile bağlanır ve gerekli class’lar EF tarafından üretilir.

Code First (Önce Kod – Yeni Veritabanı): Bu yöntemde classlar ve mapping kodları yazılımcı tarafından oluşturulur. Daha sonra veri tabanı bu class’lardan türetilir.

Code First (Önce Kod – Var olan Veritabanı): Bu yöntemde de classlar ve mapping kodları yazılımcı tarafından oluşturulur. Veritabanı class’ların ve modellemenin durumuna göre tekrardan şekillenebilir.

entity