, EntityFramework 4.3 geçişlerine başlamak istiyorum. Varolan bir veritabanını geçiş etkin bir veritabanına dönüştürüp dönüştüremeyeceğimi öğrenmek istedim ve EF, bundan sonra yalnızca geçişlerin dikkate alınması gerektiğini düşünür.EntityFramework 4.3'teki varolan bir veritabanı için nasıl geçiş yapabilirim?
cevap
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.
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ı.
Eklenti Göç -IgnoreChanges
iyi bir noktaya bakın, teşekkürler! – enamrik
Bu bir 404 şimdi –
Daha fazla bilgi burada http://tinyurl.com/q2hepmw – Spock