Entity Framework Core Nedir?

Entity Framework Core Nedir?

Entity Framework Core, veritabanı işlemleri için kullanılan bir açık kaynaklı ORM aracıdır Bu araç sayesinde, geliştiriciler kod yazmak yerine, modellerini kodlayarak veritabanı işlemlerini daha hızlı ve verimli bir şekilde gerçekleştirebilirler Entity Framework Core, veritabanı işlemlerini karmaşık hale gelmesi durumunda bile kolaylıkla yönetmenizi sağlar Migration ise, veritabanında yapılan değişiklikleri takip ederek uygun şekilde uygulamanıza olanak tanır Bu işlem sayesinde, veritabanındaki değişiklikleri kolayca takip edebilir ve uygun şekilde güncelleyebilirsiniz

Entity Framework Core Nedir?

Entity Framework Core, Microsoft tarafından sunulan .NET tabanlı bir açık kaynaklı ORM (Object Relational Mapping) aracıdır. Bu araç sayesinde, veritabanı işlemleri için gerekli olan kodları yazmak yerine, modellerimizi kodlayarak işlemlerimizi daha hızlı ve verimli bir şekilde gerçekleştirebiliriz. Entity Framework Core, .NET Core üzerinde çalışan bu ORM aracının en son sürümüdür ve Microsoft'un sunduğu en yeni teknolojilerden biridir.

Entity Framework Core'un en büyük avantajlarından biri, veritabanı işlemlerinin karmaşık hale gelmesi durumunda bile yine de kolay bir şekilde yönetilebilmesidir. Bunun yanı sıra, Entity Framework Core ile veritabanı işlemlerini daha güvenli ve hızlı bir şekilde gerçekleştirmek mümkündür. Ayrıca bu araç, çeşitli veritabanları ile uyumlu olması nedeniyle kullanıcılar tarafından da oldukça tercih edilmektedir.


Migration Nedir ve Ne İşe Yarar?

Migration, veritabanında yapılan değişikliklerin takip edilmesine ve bu değişikliklerin uygun şekilde uygulanmasını sağlayan bir işlemdir. Entity Framework Core'da migration, veritabanının konfigürasyonu ve oluşturulması için kullanılır.

Bir uygulamanın gelişim sürecinde, veritabanındaki tablolar ya da sütunlar gibi bazı yapısal değişiklikler yapmak gerekebilir. Bu değişikliklerin doğru uygulanması için migration işlemi kullanılır. Migration işlemi, geliştiricilerin veritabanını yönetmelerine yardımcı olur ve kaos ortamının önüne geçer.

Entity Framework Core'un migrasyon özelliği, geliştiricilere veritabanı şemalarında kolaylık sağlar. Yeni bir model sınıfı oluşturduğunuzda, Entity Framework Core bu değişikliği otomatik olarak algılar ve oluşturulan yeni tabloları veya sütunları migrasyon işlemi ile veritabanına kazandırır.

Migration, aynı zamanda bir proje takımı için veritabanı değişikliklerinin kolay ve tutarlı bir şekilde yönetmesini sağlar. Bir geliştirici, mevcut bir proje üzerinde çalışırken, veritabanındaki değişiklikleri kolayca takip edebilir ve diğer takım üyeleriyle değişiklikleri paylaşabilir. Bu, veritabanının farklı sürümlerini yeniden oluşturma gereksinimini önler ve veritabanında yüksek verimlilik sağlar.


Migration Oluşturma İşlemi

Migration işlemi, var olan bir veritabanını güncellemek veya yeni bir veritabanı oluşturmak için kullanılır. Bu işlem Entity Framework Core tarafından otomatik olarak gerçekleştirilir ve adım adım yapmanıza gerek yoktur. Ancak, bu işlemi oluşturma aşamalarına hakim olmak, hatanın nereden kaynaklandığını anlamaya yardımcı olabilir.

Migration işlemine başlamadan önce ilk olarak veritabanınızın oluşturulması gerekiyor. Bunun için, Package Manager Console penceresine aşağıdaki kodu yazın:

add-migration InitialCreate

Bu kod, InitialCreate adında bir migration sınıfı oluşturacak ve bunu proje içindeki Migrations klasöründe depolayacak. Ardından şu kodu yazarak veritabanını oluşturabilirsiniz:

update-database

Bu kod, veritabanını oluşturacaktır. Artık, veritabanınıza Entity Framework Core aracılığıyla erişebilirsiniz.

Code First yaklaşımı, veritabanınızın şema ve tablolarının C# sınıflarından oluşturulduğu bir yaklaşımdır. Bu yaklaşım kullanılacaksa, C# sınıflarınızın özelliklerini tanımlamak isteyeceksiniz. Ardından, bu özellikleri veritabanındaki sütunlara eşlemek isteyeceksiniz.

Örneğin, bir Person sınıfı oluşturarak başlayalım. Bu sınıfın ad, soyad ve yaş alanları olacak:

public class Person{    public int Id { get; set; }    public string FirstName { get; set; }    public string LastName { get; set; }    public int Age { get; set; }}

Şimdi bu sınıfı veritabanındaki bir tablo ile eşlememiz gerekiyor. Bunun için, DbContext sınıfında aşağıdaki kodu kullanabiliriz:

public DbSet<Person> People { get; set; }

Veritabanına nasıl bağlanacağınızı bilmek, migration işlemini tamamlamanın önemli bir parçasıdır. Entity Framework Core, veritabanına bağlanmak için farklı yöntemler sunar. Bunlardan bazıları:

  • SQL Server:
  • options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
  • SQLite:
  • options.UseSqlite(Configuration.GetConnectionString("DefaultConnection"));
  • PostgreSQL:
  • options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"));

Bu örneklerde DefaultConnection, appsettings.json dosyasındaki bağlantı dizesine karşılık gelir. Bu dize, kullandığınız veritabanına ve sunucuya göre değişebilir.

Migration sınıfı, veritabanında gerçekleştirilecek değişiklikleri tutan sınıftır. Migration işlemi, bu sınıftaki değişiklikleri veritabanına uygular. Bu sınıfı oluşturmak için, Package Manager Console penceresine aşağıdaki kodu yazın:

add-migration MigrationName

MigrationName, migration sınıfınızın adıdır. Bu isim, migration sınıfının ne hakkında olduğunu göstermelidir. Mesela, veritabanında bir tablo eklediyseniz, AddNewTable gibi bir isim kullanabilirsiniz.

Oluşturduğunuz migration sınıfı, proje içinde Migrations klasöründe depolanacaktır. Bu sınıf, Fluent API veya Data Annotations kullanarak gerçekleştirilecek değişiklikleri tanımlar.

Bu migration dosyası otomatik olarak oluşturulacaktır. Sadece Package Manager Console penceresinde komutu çalıştırdıktan sonra Migrations klasöründe dosyayı inceleyebilirsiniz.

Bir migration sınıfı oluşturduktan sonra, veritabanında gerçek değişiklikleri uygulamanız gerekiyor. Bunun için, aşağıdaki kodu kullanabilirsiniz:

update-database

Bu kod, en son migration sınıfını seçer ve gerçek değişiklikleri veritabanında uygular. Bu işlem, veritabanının güncelliğini korumak için düzenli olarak yapılmalıdır.


Veritabanı Oluşturma

Veritabanı oluşturma işlemi, Entity Framework Core'un temel bir özelliğidir. Veritabanı oluşturmak için Code First yaklaşımını kullanmak mümkündür. Code First yaklaşımı ile veritabanının yapısı C# sınıfları tarafından tanımlandıktan sonra, Entity Framework Core otomatik olarak veritabanı şemasını oluşturacaktır.

Bu işlem için öncelikle DbContext sınıfı oluşturulmalıdır. Bu sınıf, veritabanı işlemlerinin gerçekleştirildiği ana sınıftır ve DbSet özellikleri ile veritabanındaki tablolara karşılık gelen sınıflar tanımlanabilir.

Ardından, avantajlı bir özellik olan Migration ile veritabanı güncellemeleri yapabiliriz. Ancak ilk adım olarak, veritabanını oluşturmalıyız. Öncelikle, veritabanının oluşturulacağı SQL sunucusuna erişim sağlanmalıdır. Bunu yapmak için, DbContext sınıfı içinde yer alan OnConfiguring() yöntemi kullanılabilir. OnConfiguring () yöntemi, DbContext sınıfınızı yapılandırmak için kullanılan yöntemdir. Veritabanı sunucusuna doğru bağlantı yapılandırması sağlanarak erişim kodları yazılabilir.

Bu işlem tamamlandıktan sonra, veritabanı sınıfında DbSet özelliklerinin tanımlanması gerçekleştirilir. DbSet özellikleri, veritabanındaki tabloları temsil eder. Veritabanı oluşturma işlemi için kullanılacak olan özelliklerin veri türü ilgili sınıflardan türetilir.

Son olarak, Entity Framework Core tarafından otomatik olarak veritabanı şeması oluşturmak için Code First yaklaşımı ile Migration özelliği kullanılabilir. Veritabanının kontrol edilmesi ve güncellenmesi için kullanılabilecek olan bu özellik, veritabanının yapısının değişmesine izin verir.

Bu adımların tamamlanması sonrasında, veritabanı oluşturma işlemi başarıyla gerçekleştirilir. Veritabanının yapısı tanımlandıktan sonra, diğer veritabanı işlemleri gerçekleştirilebilir. Örneğin, veri tabanındaki tabloları okuma veya yazma işlemleri gerçekleştirilebilir.


Code First Yaklaşımı

Entity Framework Core, ASP.NET Core projelerinde kullanılan bir ORM (Object-Relational Mapping) aracıdır. ORM, basitçe, veritabanı işlemleri yaparken SQL sorgularıyla uğraşmak yerine nesnelerle çalışmayı sağlayan bir araçtır. Bu sayede, kodun okunması, yazılması ve bakımı daha kolay hale gelir.

Entity Framework Core ile veritabanı oluşturma işlemi için Code First yaklaşımı kullanılabilmektedir. Code First yaklaşımı, veritabanı oluşturma işlemine kod seviyesinden başlanmasını sağlayan bir yöntemdir. Bu sayede, veritabanı şemalarının oluşturulması ve yönetilmesinde kolaylık sağlar. Code First yaklaşımı, Entity Framework Core 2.0 sürümünden itibaren varsayılan yaklaşım olarak kullanılmaktadır.

Adım Açıklama
1 İlk olarak, bir C# sınıfı tanımlanır. Bu sınıf, veritabanında bir tabloya karşılık gelecektir.
2 Sınıf içerisindeki özellikler, tablonun alanlarına karşılık gelecektir. Örneğin, bir kullanıcı tablosu için bir kullanıcı adı alanı tanımlanabilir.
3 Veritabanı bağlantısı ve diğer yapılandırma ayarları C# kodu ile belirlenir.
4 Veritabanı oluşturma işlemi gerçekleştirilir.

Code First yaklaşımı, sınıfları ve özellikleri kullanarak veritabanını oluşturur. Bu sayede, şema yönetimi kod seviyesinde gerçekleştirilebilir. Ayrıca, SQL sorgularını yazmak yerine C# kodu yazarak veritabanıyla işlem yapmak mümkündür.


Veritabanı Bağlantısı

Entity Framework Core, .NET Core'a özgü bir ORM (Object-Relational Mapping) aracıdır. Bu araç kullanarak .NET Core ile veritabanlarına kolayca erişebilirsiniz. Entity Framework Core, veritabanına bağlanmak için birçok seçenek sunar. Bu seçenekler arasında database context sınıfı kullanarak doğrudan veritabanına bağlanmak yer alır.

Database context sınıfı, Entity Framework Core'un en önemli özelliklerinden biridir. Bu sınıf, veritabanı işlemlerini gerçekleştirmek için gereken tüm kodları sağlar. Bu sayede, veritabanına bağlanmak için gerekli olan tüm kodları yazmak zorunda kalmazsınız. Entity Framework Core'u kullanarak veritabanına nasıl bağlanacağınız adım adım şu şekildedir:

  1. İlk adım olarak, bir veritabanı oluşturmanız gerekir. Veritabanı oluşturma işlemi için Migration adı verilen bir mekanizma kullanılır.
  2. Database context sınıfı, veritabanı oluşturma işlemi için gerekli olan bilgileri sağlar. Bu bilgiler arasında, veritabanı sunucusu türü, veritabanı adı, kullanıcı adı ve parola yer alır.
  3. Veritabanına bağlanmak için, database context sınıfının OnConfiguring yöntemi kullanılır. Bu yöntem, veritabanı bağlantısı için gereken ayarları belirler.
  4. Veritabanı sunucusu türüne göre, UseSqlServer veya UseSqlite yöntemlerinden biri seçilir. Bu yöntemler, bağlanılacak veritabanı sunucusunun türüne göre değişir.
  5. Veritabanına bağlanmak için, database context sınıfının OnModelCreating yöntemi kullanılır. Bu yöntem, veritabanı modeli için gerekli olan bilgileri sağlar.
  6. Veritabanı modeli, veritabanında kullanılacak tabloları ve ilişkileri tanımlar. Bu tanımlar, database context sınıfı tarafından kontrol edilir.

Entity Framework Core'u kullanarak veritabanına bağlanmak oldukça kolaydır. Yalnızca database context sınıfını doğru şekilde yapılandırmanız ve gerekli ayarları yapmanız yeterlidir. Bunun yanı sıra, Entity Framework Core tarafından sunulan komutlar sayesinde, veritabanı işlemlerini kolayca yönetebilirsiniz.


Migration Oluşturma

Migration işlemi, Entity Framework Core ile veritabanında yapılan değişiklikleri güncellemekte kullanılır. İlk olarak migration sınıfını oluşturmalısınız. Bu adımda, context sınıfının adını ve veritabanı adını parametre olarak vermelisiniz. Migration işlemi sırasında veritabanında açıklamaların görüntülenebilmesi için --verbose seçeneğinin kullanılması önerilir.

İlk adımda, migration sınıfını oluşturmak için konsolda Add-Migration komutunu çalıştırın. Bu işlem migration kodlarını oluşturacaktır. Migration kodları veritabanında yapılacak değişiklikleri bize gösterir.

Sonraki adımda, migration dosyasını oluşturmak için konsolda update-database komutunu kullanın. Bu işlem, migration kodlarını veritabanına uygulayarak veritabanında yapılan değişiklikleri günceller.

Her bir migration işlemi, bir migration sınıfı ve bir migration dosyası oluşturarak gerçekleştirilir. Migration sınıfı, context sınıfının bir alt sınıfıdır ve veritabanında yapılan değişikliklerin kodlarını içerir. Migration dosyası ise veritabanında gerçekleştirilecek değişikliklerin SQL komutlarını içerir.

Migration işlemi, veritabanında yapılan değişiklikleri güncelleme işlemidir. Bu işlem, veritabanında yapılan değişiklikleri kodla senkronize etmek için kullanılır. Migration oluşturma işlemi sayesinde veritabanında yapılan değişiklikler, migration kodları ve migration dosyası aracılığıyla kodunuzla senkronize edilebilir.

Migration oluşturma işlemi, genellikle Code First yaklaşımıyla birlikte kullanılır. Code First yaklaşımı sayesinde, veritabanı oluşturma işlemi kodlarla gerçekleştirilir. Bu sayede, veritabanındaki değişikliklerin kodlarla eşleştirilmesi daha kolay hale gelir.

Migration işlemi, veritabanında yapılan değişiklikleri kodla senkronize etmek için oldukça kullanışlı bir araçtır. Entity Framework Core'un migration özelliği sayesinde, veritabanında yapılan değişikliklerin izlenmesi ve güncellenmesi daha kolay hale gelir.


Migration Sınıfı Oluşturma

Migration oluşturma işlemi için ilk adım, bir migration sınıfı oluşturmaktır. Migration sınıfı, veritabanındaki nesnelerin modelinde yapılan değişiklikleri temsil eder. Bu sınıf, Entity Framework Core tarafından otomatik olarak tanımlanır ve sonraki adımlar için gereklidir.

Yeni bir migration sınıfı oluşturmak için, Visual Studio veya komut istemini kullanarak Add-Migration komutunu çalıştırmanız gerekmektedir. Bu komutun ardından, migration sınıfının adı girilmelidir.

Örneğin, Visual Studio'da Package Manager Console'u açarak, aşağıdaki kod bloğunu yazabilirsiniz:

Add-Migration RenameUserTable

Bu, RenameUserTable adlı yeni bir migration sınıfı oluşturur. Bu işlem tamamlandığında, oluşturulan migration sınıfı, Solution Explorer'da "Migrations" klasörü altında bulunabilir.

Migration sınıfı oluşturma işlemini tamamladıktan sonra, aşağıdaki adımda migration dosyası oluşturulacaktır.


Migration Dosyası Oluşturma

Entity Framework Core'da migration dosyası oluşturmak için kullanabileceğiniz birkaç farklı komut bulunmaktadır. Bunlar Add-Migration, Scaffold-DbContext ve Script-Migration'dır. Burada Add-Migration komutu ile nasıl migration dosyası oluşturulacağı anlatılacaktır.

Add-Migration komutu kullanarak migration dosyası oluşturmak için, Visual Studio'da Package Manager Console'ı açın ve aşağıdaki komutu girin:

Add-Migration [MigrationAdi]

[MigrationAdi], oluşturmak istediğiniz migration dosyasına vermek istediğiniz isimdir. Bu ismi, migration dosyasının içinde yer alan sınıf adında da kullanacaksınız.

Örneğin:

Add-Migration CreateCustomersTable

Bu komut, CreateCustomersTable adında bir migration dosyası oluşturur. Bu dosyada, Customer adında bir sınıf oluşturabilir ve bu sınıfın içine veritabanınızda oluşturmak istediğiniz müşteri alanlarını ekleyebilirsiniz.

Eğer, birden fazla migration dosyası oluşturacaksanız, birden fazla migration dosyası oluşturma işlemi yaparak, kodunuzun daha düzenli ve okunaklı olmasını sağlayabilirsiniz.

Migration dosyasının içindeki kodları manuel olarak yazmak zorunda değilsiniz. Entity Framework Core, migration dosyasının içindeki kodları, model sınıfınızda yaptığınız değişikliklere göre otomatik olarak oluşturabilir. Bunu yapmak için, Add-Migration komutunu kullanmadan önce, bir DbContext sınıfı oluşturmanız ve Scaffold-DbContext komutunu kullanmanız gerekiyor.

Migration dosyası oluşturma işlemi tamamlandıktan sonra, yine Package Manager Console'da Update-Database komutunu kullanarak, veritabanında bu değişiklikleri uygulayabilirsiniz. Bunun sonucunda, veritabanınızdaki tablolar veya alanlar (property) gibi değişiklikler yürütülecektir.

Migration dosyası oluşturma işlemi, Entity Framework Core'un veritabanı düzenleme işlemlerini otomatikleştirdiği oldukça önemli bir adımdır. Bu adımı takip ederek, veritabanınızı daha düzenli ve kontrollü bir şekilde yönetebilirsiniz.


Migration İşleminin Yürütülmesi

Migration işleminin yürütülmesi işlemi oldukça önemlidir. Bir migration oluşturulduktan sonra, yürütülmesi gerekmektedir. Bunun için, Visual Studio üzerinde Package Manager Console'ı açın ve aşağıdaki kodu girin:

```Update-Database```

Bu, Entity Framework Core tarafından sağlanan bir komuttur ve migration dosyasındaki değişiklikleri veritabanına yansıtır. Bu komut, migration dosyasından sonraki en son duruma güncelleme yapar. Ayrıca, migration dosyası adı da verilebilir, böylece belirli bir migration dosyasında değişiklik yapmak mümkündür.

Migration işlemini geri almak isterseniz, aşağıdaki komutu kullanabilirsiniz:

```Update-Database -Migration: {MIGRATION_NAME}```

Bu komut veritabanınızı bir önceki migration'a geri döndürür. Migration ismi, geri almak istediğiniz migration dosyasının ismi ile değiştirilmelidir.

Bu komutlar, Entity Framework Core tarafından sunulan ve migration yönetimi için önemli olan işlemlerdir. Migration dosyaları, veritabanı yoluyla gerçekleşen değişikliklerin kaydedilmesine yardımcı olurlar ve yukarıda sıralanan komutlar ile bu değişiklikler veritabanında uygulanır veya geri alınır. Bu nedenle, Entity Framework Core kullanırken, migration işlemlerinin nasıl oluşturulduğunu, yönetildiğini ve yürütüldüğünü anlamak önemlidir.


Migration Yönetimi

Entity Framework Core, .NET platformu için geliştirilmiş bir ORM (Object-Relational Mapping) aracıdır. Entity Framework Core sayesinde kod yazarak veritabanı işlemleri gerçekleştirebilir ve SQL sorguları kullanmadan veritabanını yönetebilirsiniz. Bu makalede Entity Framework Core'un migration özelliği ve bu özellikle ilgili yönetim komutları yer alacak.

Migration, Entity Framework Core'un veritabanı işlemlerinde önemli bir özellik olarak karşımıza çıkar. Migration, veritabanındaki var olan bir değişikliğin kod tarafında tanımlanarak uygulanmasıdır. Migration yönetimi sayesinde birden fazla migration yapabilir, geçmişteki migration'ları tekrar çalıştırabilir, güncellemeleri geri alabilir ve hata durumlarında geri dönebilirsiniz.

Migration yapmak için öncelikle veritabanında bir değişiklik yapmanız gerekir. Bu değişiklikleri Entity Framework Core tarafından tanınacak şekilde kod tarafında tanımlamanız gerekir. Bu tanımlama işlemi C# sınıfları ile yapılmaktadır. Daha sonra, migration dosyası oluşturmak için EF Core tarafından sunulan veritabanı geçiş komutları kullanılır. Oluşturulan migration dosyası daha sonra veritabanına uygulanarak, değişiklikler gerçekleştirilir.

EF Core tarafından sunulan migration yönetimi komutları şunlardır:

add-migration Yeni bir migration sınıfı oluşturmak için kullanılır.
update-database Migration sınıflarını veritabanına uygulamak için kullanılır.
remove-migration Son yaratılan migration sınıfını silmek için kullanılır.
get-database Veritabanı schema'sını ve durumunu öğrenmek için kullanılır.
script-migration Veritabanı değişikliklerini SQL scripti olarak elde etmek için kullanılır.
list-migrations Migration sınıflarının listesini göstermek için kullanılır.

Bu komutlar sayesinde var olan migration sınıflarını listeleme, güncelleme, silme ve oluşturma işlemlerini gerçekleştirebilirsiniz. Ayrıca, migration işlemlerinde hata alındığı takdirde geri döndürme gibi işlemler de yapabilirsiniz. Bu sayede veritabanı işlemlerini daha rahat bir şekilde yönetebilirsiniz.