ASP.NET Core Kitap Listeleme Projesi Ders 02

Kitap Listesi projemizin ikinci dersinden selamlar arkadaşlar. Bu dersimizde projemizin veritabanı kısmında kullanacağımız tablolara ilişkin model sınıflarımızı eklemekle devam edelim. Bu arada bir önceki videoda DBContext classımızı Models klasörüne eklemiştim aslında onu ayrı bir DBContext şeklinde bir klasör yapsam daha iyi olurdu ancak şimdi çok da değiştirmek istemiyorum. Biraz tablolara ilişkin classlarım ile yanyana olacak ama olsun, çok problem değil.

Dersi video ile izlemenizi öneririm ilgili ders videomuz:

Şimdi tekrar konumuza dönersek;

Models klasörüme sağ tıklıyor ve bir class ekliyorum. Bu classımın adı Kitap olsun. Şimdi bu class içine birkaç property ekleyelim. Kodlarımızı yazalım:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;

namespace KitapListesiProjesi.Models
{
    public class Kitap
    {
        [Key]
        public int Id { get; set; }

        [Required]
        public string KitapAd { get; set; }
        public string Yazar { get; set; }
    }
}

Burada yer alan ID propertysi int tipinde ve eşsiz bir özelliğe sahip olması sebebi ile hemen üstünde bir data annotation attribute tanımladım. Birde kitap adı için KitapAd adında bir property tanımladım, buna da Required data annotation tanımlaması yaptım. Ayrıca kitabın yazar bilgisi için bir property daha tanımladım.

Şimdi buradan tekrar Models klasörü altında yer alan KLDbContext.cs classımıza gelelim, tablomuzu veritabanına aktarma işleminden önce dbset tanımlaması yapalım ve kodlarımızı düzenleyelim:

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace KitapListesiProjesi.Models
{
    public class KLDbContext : DbContext
    {
        public KLDbContext(DbContextOptions< KLDbContext > options) : base (options)
        {

        }

        public DbSet Kitap { get; set; }
    }
}

Data Migration ve Database Güncelleme İşlemimiz

Şimdi veritabanımıza değişiklikleri yansıtabilmek için migration oluşturmam lazım. Ancak bundan önce video eğitimi izleyenler görmüşlerdir, benim connection stringim hatalı idi. O hatalı kısımları düzenledim ve artık appsetting.json içeriğindeki kodlarım şu şekilde:

{
  "ConnectionStrings": {
    "Baglanti": "Server=DESKTOP-FIUL2TU\\SQLEXPRESS; Database=DBKitapListesi; Trusted_Connection=True"
   
  },

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

Tekrar migration işlemime dönelim. Veritabanında güncelleme yapabilmek için Package Manager Console alanında ilgili kodlarımı yazmam lazım. Dolayısı ile Tools menüsünden Nuget Package Manager altında yer alan Package Manager Console seçiyorum ve buradan pm console’u açıyorum.

Visual studio alt kısımda package manager console alanında şimdi migration işlemim için ilgili komutumu yazıyorum. Bu arada aşağıdaki görselde görüleceği üzere Default Project alanımda KitapListesiProjesi seçili.

Burada add-migration EkleKitapTablosu şeklinde migration ekledim. Add-migration kısmı standart komutum, sonrası ise benim migration için verdiğim isim.

Migration ekleniyor, akabinde değişiklikleri veritabanında görmek için bu sefer yine üstteki ekranda olduğu gibi package-manager console alanında bu sefer;

update-database yazıyorum. Burada da eğer bir hata almaz isem veritabanıma gidiyor ve sql server management studio üzerinde refresh yapıyorum. Artık benim veritabanım oluşturuldu ve ilgil tabloda içinde yer alıyor.

Şimdilik bu ders bu kadar, detayı görmek için üstte verdiğim video üzerinden gitmenizi öneririm.

Bir cevap yazın

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