Entity Framework Code First Migration Kullanımı

Posted by

Selam arkadaşlar, bu yazımda sizlere Entity Framework Code First Migration Kullanımı konusundan bahsedeceğim.

Entity Framework Code First ile oluşturduğumuz datacontext nesnemiz ve ilgili entitylerimizi ekleyip veritabanımızı oluşturduk diyelim. Herhangi bir entity de bir kolon eksik oldu eklemek isteyebiliriz veya var olan kolonun data tipini değiştirmek isteyebiliriz. Bu gibi durumları gerçekleştirdiğimizde Entity Framework’ün veritabanındaki ilgili yerleri düzenlemesi yani güncellemesi gerekir. Bu olayı gerçekleştirmek için de Migration dediğimiz olay uygulanır.

Peki nasıl uygulayabiliriz?

Öncelikle Visual Studio menü sekmesinden Tools > Nuget Package Manager  > Package Manager Console penceresini açıyoruz.

Daha sonra açılan kısımda Enable-Migrations kodumuzu ekleyip çalıştırıyoruz. Bu işlemi yaptığımızda Migration durumunu etkinleştiriyoruz. Bunu yaptığımızda sistem tarafından bir Configuration dosyası oluşturuluyor. Enable-Migrations yazıp daha sonra ardından bir şey yazarsak oluşturulacak olan dosya o isimle oluşturulabiliyor. Migration etkinleştirildikten sonra bir işlem daha yapmamız gerekiyor o da veritabanını güncellemek. Bu işlemi de Update-Database komutu ile aynı pencerede yazıp çalıştırarak güncelleme işlemini gerçekleştirebiliyoruz.

Kısaca özetlemek gerekirse:

– Menü sekmesinden Tools > Nuget Package Manager  > Package Manager Console penceresi açılır.

Enable-Migrations komutu yazılıp çalıştırılır.

– Son olarak ise Update-Database komutu yazılıp çalıştırılır.

Tüm bu işlemlerden  sonra veri tabanımızın güncellenmesi sağlanmış olacaktır.

Entity Framework Code First Migration işlemini yukarıdaki gibi gerçekleştirebilirsiniz.

Bir sonraki yazıda görüşmek üzere…

11 comments

  1. Lütfen eksik bilgi paylaşımı yapmayınız burda insanlar tam bir bilgi öğrenmek istiyor.

    1. Merhaba, eksik olan kısımlardan bahsederseniz ilgili eksiklikleri birlikte giderebiliriz. Ayriyeten Migration işlemleri ile ilgili güncel yazılarımda birden fazla örnek de mevcut.
      İşlemleri sağlamak için o yazıları inceleyebilirsiniz. Hatta “Net Core Api” yazı serisini incelerseniz baştan sona detaylı bir şekilde işlemlerinizi sağlayabilirsiniz.

  2. Merhabalar hocam,
    update-database yaptıktan sonra bu hatayı alıyorum çözümü nedir acaba .
    A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SNI_PN11, error: 26 – Error Locating Server/Instance Specified)

    1. Merhaba, SQL Server için Connection String değerinde bir yanlışlık olabilir ya da bilgisayarda Hizmetler kısmında SQL Server servisi kapalı olabilir.

  3. Merhabalar hocam,
    .NetFra
    Migration çıktım, ikinci bir düzeltme ile add-migration dan sonra Hosting hizmetlerine erişilirken hata veriyor. Şu hatayı alıyorum:
    Unable to create an object of type ‘DbContextName’.

    1. Merhaba, öncelikle DbContext nesnemiz farklı bir projede ise Package Manager Console üzerinde ilgili proje seçimini yapmamız gerekebilir ya da ilgili projeyi Set As Startup Project seçeneği ile seçtikten sonra Migration işlemini yapmanız gerekebilir.

  4. Merhaba, package manager colsole’da enable-migrations yazdığımda
    The term ‘enable-migrations’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
    At line:1 char:18
    + enable-migrations <<<<
    + CategoryInfo : ObjectNotFound: (enable-migrations:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    Bu şekil bir hata alıyorum. Bunu nasıl çözebilirim.

    1. Merhaba, nuget package manager üzerinden Microsoft.EntityFrameworkCore.Tools paketini yüklü değilse o paketi yüklemek gerekiyordur. Onu yükledikten sonra tekrar deneyebilirsiniz.

    1. Merhaba, up ve down metodları içerisi boş geliyor ise bir değişiklik bulunmamaktadır. Eğer değişiklik olduğu takdirde boş geliyor ise Add-Migration yaptıktan sonra yeni bir değişiklik dosyası oluşturmanız gerekmektedir. Belki de boş gelmesinin sebeplerinden birisi değişikliklerden sonra dosya oluşturmadıysanız bir önceki dosyayı baz alacak ve değişiklik algılanmadığı için up ve down metodları boş kalacaktır.

      1. Add-migration yaptıktan sonra yeni oluşturulan migratinos dosyası ekleniyor saten. Değişiklik dosyasından kastınız bu değil mi? Yani bizim yeni bir şey eklememize gerek yok kendi otomatik ekliyor ve o da boş oluyor. O kısmı anlamdım onun dışında değişiklik yaptıktan sonra migration ekliyorum zaten

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir