Entity Framework - Code First Migration
Selamlar, Geçen yazımda Entity Framework Code First ile ilgili bir örnek yapmıştım , bu yazıda da bir migration örneği yapıcağım .Daha önceki yazımda yaptığım örnek üzerinden devam edeceğiz , hatırlamayanlar için geçen örneğimize bi göz atalım;
[Table("Urunler")]
class Urun
{
public int Id { get; set; }
public string Ad { get; set; }
public Kategori Kategori { get; set; }
public List<Musteri> Musteriler { get; set; }
}
[Table("Kategoriler")]
class Kategori
{
public int Id { get; set; }
public string Ad { get; set; }
public List<Urun> Urunler { get; set; }
}
[Table("Musteriler")]
class Musteri
{
public int Id { get; set; }
public string Ad { get; set; }
public string Soyad { get; set; }
public List<Urun> Urunler { get; set; }
public string Eposta { get; set; }
}
class EfContext : DbContext
{ public DbSet<Urun>Urunler { get; set; }
public DbSet<Kategori> Kategori { get; set; }
public DbSet<Musteri> Musteriler { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Urun>().Property(dp => dp.Id).IsRequired(); modelBuilder.Entity<Kategori>().Property(dp => dp.Id).IsRequired(); modelBuilder.Entity<Kategori>().Property(dp => dp.Ad).HasMaxLength(25); modelBuilder.Entity<Urun>().HasMany(p => p.Musteriler).WithMany(t => t.Urunler) .Map(mc => mc.ToTable("MusteriUrun")); }
public EfContext() : base(ConfigurationManager.ConnectionStrings["EfDataContext"].Name)
{
} }
Musteri classına eposta propertysi ekledim ve şimdi bunu veritabanına migrate edeceğim. Migration yapabilmek için Package Manager Console'a ihtiyacım var.
Komut satırına ilk olarak Enable-Migrations yazıyorum.
Karşıma gelen Configuration classının Seed metodunda veritabanına veri ekleme, silme , güncelleme işlerini yapabilirim. Ben örnek olarak veritabanına bir kategori ekledim;
Bu aşamadan sonra Console'a Add-Migration musteriyeEpostaEkleme yazıyorum.
DbMigrationdan kalıtım alan musteriyeEpostaEkleme classındaki up metodu database de yapılacak olan işlemi, down metodu ise migrationu geri alma durumunda databasede yapılacak işlemin belirtildiği metodlar.
En son da Update-Database diyerek değişiklikleri veritabanına kaydetmiş oluyorum. Bu yazıda burda bitmiş oluyo aynı zamanda :)
Hiç yorum yok:
Yorum Gönder