MIGRATION İLE VERİ EKLEME NASIL YAPILIR?

Bu dersimizde migration kullanarak databasede tablomua kayıt eklemeyi göstereceğim öncelikle. Normalde kayıt eklerken tabi migration kullanmayacağım şu anda ders niteliğinde olması sebebi ile örnekleme amaçlı bu işi yapıyorum. Normalde uygulamamızda ilgili kontroller, alanlar olur ve buradan kayıt kaydetme işlemi vs yaparız. Tabi bunlara da değineceğim ama sıra ile 😊

Detaylı ders anlatımı ve kod takibi için video:

Birde bu dersimizde şimdi migration ile eklediğimiz kayıtları database’den okuma işi ile örnekleyeceğiz. Şimdi migration ile kayıt ekleme işlemini gerçekleştirelim.

Ben migration kullanarak Kategori tablosuna veri ekleyeceğim. Öncelikle package manager console açıyorum ve Data Access katmanımda iken yeni bir migration ekliyorum. Adını EkleHamDataKategoriTablosu vereceğim. Add-migration EkleHamDataKategoriTablosu diyorum karşılığında boş bir migration oluşturuluyor.

Oluşan migration boş bir migration çünkü ben herhangi bir değişiklik yapmadım. Ben burada SQL komutu kullanarak Kategori tablosuna veri ekleyeceğim. Benim bu tablom bu arada database tarafında tbl_Kategori adı ile ismedilmiş durumda. Bu tabloya baktığımda iki tane kolon mevcut, birisi KategoriId diğeri ise KategoriAdi. Beni ID bilgim zaten otomatik türetiliyor, dolayısı ile ben migration ile veri eklerken bu tablonun sadece KategoriAdi kolonu için veri ekleyeceğim.

Boş migrationa geliyorum ve kodlarımı yazıyorum.

using Microsoft.EntityFrameworkCore.Migrations;

namespace GRSYKitapEvi_DataAccess.Migrations
{
    public partial class EkleHamDataKategoriTablosu : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.Sql("INSERT INTO tbl_Kategori VALUES('Roman')");
            migrationBuilder.Sql("INSERT INTO tbl_Kategori VALUES('Şiir')");
            migrationBuilder.Sql("INSERT INTO tbl_Kategori VALUES('Bilim')");
            migrationBuilder.Sql("INSERT INTO tbl_Kategori VALUES('Ders')");
            migrationBuilder.Sql("INSERT INTO tbl_Kategori VALUES('Yabancı Dil')");
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {

        }
    }
}

Daha sonra package manager console’da update-database diyerek veritabanımı güncelliyorum, yani migrationun database’e yansımasını sağlıyorum. Database tarafında kontrol ediyorum ve verilerimin geldiğini görüyorum.

Bu arada ek bir bilgi vrelim, eğer ben bu noktada kayıt işlemlerine ilişkin logları output ekranımda görmek istersem, bunun için appsettings.json’a gelir ve aşağıdaki şekilde kodlarımı düzenliyorum.

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.EntityFrameworkCore.Database.Command": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "DefaultConnection": "Server=DESKTOP-FIUL2TU\\SQLEXPRESS;Database=DbGursoyKitapEvi;Trusted_Connection=True"
  }
}

Bir sonraki derste görüşmek üzere.

Bir cevap yazın

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