29 Etkinlik Modelini oluşturma ve veritabanına ekletme

Models\Etkinlikler.cs dosyasına aşağıdaki modeli oluşturuyoruz

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

public class Etkinlik
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required]
    public string EtkinlikAd { get; set; }
    [Required]
    [DataType(DataType.DateTime)]
    public DateTime TarihSaat { get; set; }
    [Required]
    public string Yer { get; set; }
    [Required]
    [DataType(DataType.MultilineText)]
    public string Detay { get; set; }
    [Required]
    [DataType(DataType.ImageUrl)]
    public string Gorsel { get; set; }
}

Oluşturduğumuz Etkinlikler yapısının veritabanında yer alması için veritabanı yöneticisi olan ApplicationDbContext nesnesi içine bunu DbSet olarak ekletmemiz gerekiyor.

  public DbSet<Etkinlik> Etkinlikler { get; set; }

Models\DbContext.cs dosyasının son hali aşağıdaki gibi olacaktır.

using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : IdentityDbContext<AppUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
    }

    public DbSet<Duyuru> Duyurular { get; set; }
    public DbSet<Etkinlik> Etkinlikler { get; set; }
}

ApplicationDbContext içine eklenen nesnenin migrations yapıları ile veritabanına eklenmesi için migratios oluşturup bunu veritabanına uygulayacağız. Bunun için öncelikle terminale aşağıdaki kodu yazarak son durumun migrations dosyasını çıkarıyoruz

dotnet ef migrations add etknilik_ekle

Yukarıda oluşturulan migration yapısını veritabanına uygulamak için aşağıdaki kodlar ile veritabanını güncelliyoruz.

donet ef database update