.Net tabanlı geliştirilen projelerde genellikle SQL Server ya da Access veritabanı kullanmaktayız. Farklı veritabanı kullanımı gerektiği durumlarda ise bu veritabanının ConnectionString’ini kullanarak katı sql sorguları ile kolaylıkla bu veritabanlarını da kullanabilmekteyiz.
Peki bu yöntem ne kadar sağlıklı öncelikle bunu inceleyelim.
Basit bir örnekle bakacak olursak, SQL Server’da yazılan “SELECT TOP 1 * FROM Urunler” sorgusu FireBird veritabanını da aynı proje için kullanmamız gerektiğinde çalışmayacaktır. Çalışması için FireBird’e özel bir sorgu yazmamız gerekmektedir : “SELECT FIRST 1 * FROM Urunler”.
Peki farklı veritabanı kullanmamak istiyorsak ve sadece tek bir sorgu yazmak istiyorsak ne yapmamız gerekir?
Entity framework bu noktada devreye girmektedir. Basitçe, Entity Framework ile oluşturulan yapılarda oluşturulan sorgular, gerekli ayarlamalar yapıldığında kolaylıkla diğer veritabanları için de kullanılabilmektedir.

 

entity-framework-giris-1

entity-framework-giris-1

 

Şekilde Entity Framework’ün yapısı yer almaktadır. Basitçe aşamalarından bahsetmek gerekirse:
Entity SQL : Entity Framework’e özel kullandığımız SQL komut yapısı.
LINQ to Entities : Entity Framework’le oluşturduğumuz SQL sorgularının denetimini ve servise gönderimini sağlar.
Entity Client : Yazdığımız LINQ kodlarının veritabanına uygulanmasını sağlar.