Entity Framework, Microsoft .NET için geliştirilmiş ve uygulama ile veritabanı arasındaki veri erişim mantığını (Data Access Logic) ilişkilendirmemize olanak tanıyan bir araçtır. Uygulamadaki sınıflar ve nesneler ile veritabanındaki tablolar arasındaki ilişkiyi kurabilmemizi sağlar. Bu ilişkiye Object Relational Mapping - ORM adı verilmektedir. O/RM içindeki;
O: Object - Uygulamadaki sınıfları,
R: Relational - Veritabanındaki tabloları
ifade eder.
Entity Framework, ADO.net'in bir parçası olarak geliştirilmiştir ve DataReader ile DataSet gibi component'ler de ADO.net'in bir parçasıdır.
EF Core (Entity Framework Core) ise yine bir ORM aracıdır ve Entity Framework'ün güncel versiyonu olarak değerlendirilebilir. EF Core, Entity Framework 6.x sürümleri ile aynı arayüzlere sahip olacak şekilde geliştirilmiştir ve Entity Framework 6.x sürümlerine göre aşağıdaki gibi artıları vardır.
- EF Core ile NoSQLDB veritabanlarına erişim sağlanabilir ancak EF 6 ile bu mümkün değildir.
- EF Core; Windows, Apple ve Linux'te çalıştırılabilir ancak EF 6 sadece Windows işletim sistemli makinelerde çalıştırılabilir.
EF 6 kullanılarak hazırlanan çalışmalarda iki farklı uygulama yaklaşımından bahsedebiliriz.
1. Code-First: Bir uygulamanın sınıflarının hazırlanmasından sonra veritabanının otomatik olarak oluşturulmasını sağlar.
2. Database-First: Veritabanını kodladıktan sonra ya da mevcut bir veritabanından tüm sınıfların otomatik olarak oluşturulmasını sağlar
EF Core ise Code-First yaklaşımını doğrudan desteklerken Database-First yaklaşımını kullanabilmek için ilave işlemler yapmak gereklidir.