Entity Framework Core Nedir? Kurulumu ve Kullanımı

Paylaş

.NET Core platformu için geliştirilen ORM aracı Entity Framework Core nedir, kurulumu ve kullanımı ile ilgili bilgiler yer alıyor.

Entity Framework Core nedir?

Entity Framework Core (EF Core) 2016 yılından itibaren .NET Core platformu için geliştirilen ORM aracıdır.

Entity Framework hakkında detaylı bilgi için Entity Framework yazıma bakabilirsin.

EF ve EF Core arasındaki farklar

EF genel bir araç iken EF Core veri sağlayıcısına göre kurulur ve kullanılır.

EF sadece Windows tabanlı .NET platformunda kullanılırken EF Core platform bağımsız olarak geliştirme yapmaya imkan verir.

EF içerisinde Database, Model, Code First yaklaşımları varken EF Core içerisinde Code First yaklaşımı ve komut satırında Database First yaklaşımı vardır.

EF Core kurulumu

EF Core bir Nuget paketi olduğundan Visual studio geliştirme ortamında projeye sağ tıklayıp Manage NuGet Packages seçeneği ile kurulum yapılabilir.

Package Manager Console alanına aşağıdaki komut yazılarakta indirilebilir.

Install-Package Microsoft.EntityFrameworkCore.SqlServer

.NET Core CLI ile indirmek için aşağıdaki komutlar kullanılır.

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

NOT: Diğer veri sağlayıcıları için son ek değiştirilmesi yeterli olacaktır.

Add-Migration, Scaffold-DbContext, Update-Database gibi komutları kullanmak için aşağıdaki gibi Tools paketi kurulabilir.

Install-Package Microsoft.EntityFrameworkCore.Tools

Dotnet CLI için;

dotnet add package Microsoft.EntityFrameworkCore.Tools

Nuget paket yönetici hakkında detaylı bilgi için NuGet Nedir? yazıma bakabilirsiniz.

EF Core kullanımı

EF Core kullanımı temel olarak EF kullanımı ile aynıdır.

Entity Framework hakkında detaylı bilgi için Entity Framework yazıma bakabilirsin.

EF Core yapısında bazı sınıf ve metotların kullanımı değişmiştir.

DBContext

Veritabanı işlemlerinin yapıldığı DBContext sınıfının kurucuları değiştirilerek DbContextOptions türünden bağlantı ayarlarını almaktadır.

Veritabanı bağlantı ayarları için ayrıca DBContext sınıfının OnConfiguring metodu override edilerek kullanılabilir.

class PeopleContext : DbContext
{
    // Kurucu ile ayarların yapılması
    public PeopleContext(DbContextOptionsBuilder builder) : base(builder.Options) { }

    // Metot ile ayarların yapılması
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(@"Data Source=.;Initial Catalog=Veritabani;Integrated Security=true");
        base.OnConfiguring(optionsBuilder);
    }
}

Burada dikkat edilmesi gereken DbContextOptionsBuilder içerisinde yer alan UseSqlServer metodunun Extensions özelliği ile kullanılıyor olmasıdır.

Farklı veri sağlayıcı için farklı metotlar kullanılmaktadır.

Scaffold-DbContext

Önceden oluşturulan veritabanına ait yapının modelini oluşturmak için Tools ile birlikte gelen Scaffold-DbContext komutu kullanılır.

Scaffold-DbContext "Data Source=.;Initial Catalog=Veritabani;Integrated Security=true" -Provider Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

.NET Core CLI için;

dotnet ef dbcontext scaffold "Data Source=.;Initial Catalog=Veritabani;Integrated Security=true" Microsoft.EntityFrameworkCore.SqlServer -o Models

Komut veritabanı bağlantısı ve modelin oluşturulacağı klasörü parametre olarak almıştır.

Komutun diğer kullanımı için aşağıdaki komut kullanılır.

Get-Help Scaffold-DbContext -detailed

.NET Core CLI için;

dotnet ef dbcontext scaffold --help

Asenkron metotlar

EF Core ile birlikte komutların asenkron olarak çalışması için MetotAsync gibi metotlar eklenmiştir.

Örnek olarak AddAsync, FindAsync, SaveChangesAsync metotları verilebilir.

Bu metotların çalışması Asenkron programlama yöntemine göre yapılır.

Böylece kayıt ekleme, kayıt silme gibi işlemler sırasında oluşan bloklamanın önüne geçilerek performans arttırılmıştır.

.NET Derslerine buradan ulaşabilirsiniz.

Hayırlı günler dilerim.


Bunlarda ilgini çekebilir