7 Temmuz 2013 Pazar

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 { getset; }     
   public string Ad { getset; }    
   public Kategori Kategori { getset; }     
   public List<MusteriMusteriler getset; }  
 

[Table("Kategoriler")]  

class Kategori  
 
   public int Id getset; } 
   public string Ad getset; } 
   public List<Urun> Urunler getset; }  
 


[Table("Musteriler")] 

 class Musteri  
 
   public int  Id getset; } 
   public string Ad getset; } 
   public string Soyad getset; } 
   public List<Urun> Urunler getset; }  
   public string Eposta getset; }  


class EfContext DbContext  
   public DbSet<Urun>Urunler getset; }     
   public DbSet<Kategori> Kategori getset; }    
   public DbSet<Musteri> Musteriler getset; } 

   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