• Buradasın

    Entity Framework Core'da Migrations Kullanımı Eğitimi

    youtube.com/watch?v=D_x_lZhme0o

    Yapay zekadan makale özeti

    • Bu video, bir konuşmacının Entity Framework Core'da migrations konusunu anlattığı kapsamlı bir eğitim içeriğidir.
    • Video, Code First yaklaşımında Entity Framework Core'da migrations oluşturma, uygulama ve yönetme yöntemlerini adım adım göstermektedir. İçerikte Package Manager Console ve Terminal üzerinden migrations oluşturma, initial migration oluşturma, veritabanına uygulama, tablo ve sütun ekleme/silme işlemleri, migrasyonların geri alınması (rollback) ve silinmesi gibi konular ele alınmaktadır.
    • Eğitim boyunca PowerShell komutları kullanılarak migrasyon işlemleri gerçekleştirilmekte ve DataGrip gibi araçlar ile veritabanı şeması görüntülenmektedir. Video, bir sonraki bölümde Database First yaklaşımı ve reverse engineering konularının işleneceği bilgisiyle sonlanmaktadır.
    00:01Entity Framework Core'da Migrationlar
    • Video, Entity Framework Core üzerinde migrationlar konusunu ele alıyor.
    • Önceki videoda Application DB Context'in nasıl oluşturulduğu ve onConfiguring ile onModelCreating metodlarında yapılması gerekenler anlatılmıştı.
    • Bu videoda code first yaklaşımıyla önce modeller oluşturulup sonra veritabanı oluşturulması ve bu kuralların veritabanındaki kurallara dönüştürülmesi işlemi ele alınacak.
    00:50Migration Oluşturma Yöntemleri
    • Migration oluşturma için iki yöntem bulunuyor: Package Manager Console ve terminal üzerinden.
    • Package Manager Console kullanmak için data projesine sağ tıklayıp "Set Startup Project" seçeneğini seçip, Tools menüsünden Package Manager Console'ı açmak gerekiyor.
    • Terminal üzerinden çalışmak için uygulamaya sağ tıklayıp "Open in Terminal" seçeneğini seçmek yeterli.
    02:24Terminal ve Package Manager Kullanımı
    • Terminal üzerinden yapılan kodların anlam ifade edebilmesi için "dotnet ef" yardımcı aracı kullanmak gerekiyor.
    • Package Manager Console'da aynı değişiklikler için "dotnet ef" kullanmaya gerek yok, kodlar farklı çalışıyor.
    • Terminalde "dotnet ef migrations add" komutu ile yeni bir migration oluşturulabilir.
    04:45Migration Nedir ve Ne İş Yapar
    • Migration, kodumuzdaki değişikliklerin veritabanına uygulanması işini kapsıyor.
    • Eğer veritabanında aynı tablolar varsa bile, bir sınıfa yeni bir sütun eklenirse de migration yapmak gerekiyor.
    • İlk migration oluşturulduğunda tabloların tamamı oluşacak.
    06:02İlk Migration Oluşturma
    • Terminalde "dotnet ef migrations add initial migration" komutu ile ilk migration oluşturulmaya çalışılıyor.
    • Entity Framework Tools versiyonu runtime versiyonundan düşük olduğunda hata veriyor ve update edilmesi gerekiyor.
    • Design time'da DB Context'in create edilemediği hatası alındığında, ApplicationDBContextDesignTimeFactory adında bir sınıf oluşturulmalı.
    09:10Design Time Factory Sınıfı
    • ApplicationDBContextDesignTimeFactory sınıfı, IDesignTimeDbContextFactory interface'inden türetiliyor.
    • Bu sınıf, design time'da DB Context'e ulaşmak için kullanılıyor.
    • Factory sınıfında "CreateDbContext" metodu implement ediliyor ve burada DB Context oluşturuluyor.
    11:41Entity Framework Core ile Veritabanı Magretion Oluşturma
    • DB context parametre olarak option gönderilmediyse varsayılan değer kullanılıyor.
    • "dotnet ef migrations add initial migration" komutu ile ilk magretion oluşturuluyor.
    • Magretion oluşturulduğunda "magretions" adında bir klasör oluşuyor ve içinde iki dosya bulunuyor.
    12:34Magretion İçeriği ve Özellikleri
    • Magretion, DB context'in modellerinin snapshot'ını alıyor, yani uygulamadan önce var olan DB context'in yedeğini alıyor.
    • Snapshot'ta hangi SQL Server kullanılacağı ve identity kalıbının kullanılacağı bilgisi bulunuyor.
    • Magretion'ın içerisinde iki temel metod var: up ve down.
    13:52Up ve Down Metodları
    • Magretion'lar veritabanına uygulanabildiği gibi veritabanından geri alınabiliyor.
    • Up metodu, veritabanına değişiklikleri uygularken, down metodu bu değişiklikleri geri alıyor.
    • İlk magretion'da sadece tabloların ve sütunların oluşturulması ile ilgili işlemler var, daha sonra sadece sütun eklendiğinde sadece o sütunla ilgili kodlar olacak.
    14:52Magretion'ı Veritabanına Uygulama
    • Magretion'ı veritabanına uygulamak için "dotnet ef database update" komutu kullanılıyor.
    • Magretion'ın en son olup olmadığı bilgisini, veritabanına "ef_migration_history" adında bir tablo yaratılarak kontrol ediyor.
    • Magretion uygulandıktan sonra veritabanında dört tablo oluşuyor: üç tanesi kullanıcı tarafından oluşturulan, biri de Entity Framework Core tarafından oluşturulan.
    16:42İkinci Magretion Oluşturma
    • Daha sonra değişiklik yapmak istediğimizde (örneğin first name ve last name alanlarının karakter uzunluğunu değiştirmek) yeni bir magretion oluşturuyoruz.
    • İkinci magretion'da sadece değişiklik yapılan alanlar (sütunlar) alınıyor, önceki magretion'da tabloların oluşturulması gibi işlemler yok.
    • Magretion, snapshot'tan kendi snapshot'ını karşılaştırarak değişiklikleri tespit ediyor.
    19:44Magretion'ı Geri Alma ve Silme
    • Magretion'ı silmek için "dotnet ef migrations remove" komutu kullanılıyor.
    • Magretion'ı geri almak (rollback yapmak) için "dotnet ef database update" komutuna magretion parametresi veriliyor.
    • Parametre olarak magretion verildiğinde, veritabanında olmayan en son magretion bulunup veritabanına uygulanıyor.
    20:59Magration Geri Alma İşlemi
    • LED change migration'ı geri almak için initial migration'ı tekrar çalıştırılması gerekiyor.
    • Magration'ı geri almak için down metodu içerisinde "beni şu haline geri gönder" kodu yazılabilir.
    • Veritabanında uzunluk değeri tekrar 100'e gelmiş durumda.
    22:22Magration Scriptleri
    • Magrationlar veritabanında değişiklikler yapar ve SQL kodları oluşturup çalıştırır.
    • "netf magrations script" komutu ile hangi magration'ın scriptini oluşturabilirsiniz.
    • İlk magration tamamlandığında Entity Framework'ün kendi history'si için tuttuğu tablo oluşturulur.
    23:58Magration Script İçeriği
    • Magration scriptleri SQL Server'ın T-SQL (Transac SQL) dilinde oluşturulur.
    • Scriptte tabloların oluşturulup oluşturulmadığı kontrol edilir ve gerekli tablolar oluşturulur.
    • Entity Framework'ün magration history tablosuna initial magration'ın ismi ve versiyonu eklenir.
    25:19Gelecek Videolar
    • Bu videoda code first tarafında magration işlemleri anlatılmıştır.
    • Bir sonraki videoda database first tarafında script oluşturarak reverse engineering konusu ele alınacaktır.
    • Veritabanındaki objelerin, tabloların ve sütunların C# tarafında class'lara, fieldlara ve propertylere çevrilmesi anlatılacaktır.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor