2012-02-14 19 views

cevap

9

bunun için güzel bir gözden geçirme burada yayınlanan edilir: öneririm http://thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database/

bir değişiklik göç dağıtmış kadar basitçe Yukarı ve Aşağı yöntemlerinde kodunu kapatmaktır. Bundan sonra, kodu rahatsız edebilir ve daha sonra ihtiyacınız olursa, yeni bir veritabanı oluşturmanıza olanak tanır.

+0

iyi bir noktaya bakın, teşekkürler! – enamrik

+0

Bu bir 404 şimdi –

+0

Daha fazla bilgi burada http://tinyurl.com/q2hepmw – Spock

8

Dolayısıyla aradığım şey, AutomaticMigrationsEnabled = false ayarlandığında etkinleştirilen Codebased Migrations. Modellerim mevcut bir veritabanından oluşturuldu. Göçmeleri etkinleştirmek için tek yapmam gereken geçişleri etkinleştirmekti (Enable-Migrations), Add-Migration kullanarak yeni bir yeni taşıma dosyası oluşturup boşaltın (modellerim zaten veritabanındadır, bu yüzden EF'in denemesini istemiyorum. bunları oluşturun) ve dağıtın.

protected void Application_Start() 
{ 
     var config= new Configuration(); 
     var migrator = new DbMigrator(config); 
     migrator.Update(); 
} 

yeni tablo __MigrationHistory oluşturuldu ve yeni bir göç rekor içinde oluşturmak edildi: dağıtmak için, benim Global.asax dosyasında aşağıdaki eklendi. Bu yeni taşıma kaydının modelleri benim için bir karmaşası oldu. Dolayısıyla, artık modellerle ilgili tüm değişiklikler EF ile gelecekteki geçişlerde benim için yazılabilir.

Test etmek için başka bir geçiş dosyası (Add-Migration) oluşturdum, bir modele yeni bir özellik ekledim, yeni alanı kodlayan Eklentiler'i çalıştırıp uygulamamı dağıttım. Taşıma beklendiği gibi çalıştırıldı.

İlgili konular