29

Modelimin geçişlerini oluşturmak için paket yöneticisi konsolundaki add-migrasyon komutunu kullanmaya başladı. Sorum şu, yukarı ve aşağı metodu. Aşağı yönteminin amacının, tüm bağımlılıkları kaldırmak ve zaten veritabanında bulunuyorsa tabloları bırakmak olduğunu varsayalım? Ayrıca, aşağı yöntem, yukarı yöntemden önce yürütülür? Yukarı yöntem o zaman ters, oluşturmak/güncelleme tabloları/dizinleri vb?C# Kod-İlk geçiş, yukarı/aşağı?

Bazen bunu kullandığımda, aşağı yöntem, daha sonra bırakılan çok sayıda oluşturma tablosu alır? Son zamanlarda çok sayıda tablo yarattı ve düşürdü ve neredeyse aynı şey yukarı yöntemde oldu. Niye ya?

cevap

53

Up yöntemi, veritabanınızı mevcut durumunuzdan (önceki geçişinizle temsil edilen) geçerli kod geçişiniz tarafından beklenen duruma yükseltir. Down yöntemi tersine işlem yapar - geçerli geçişten tüm değişiklikleri kaldırır ve veritabanını önceki geçişin beklediği duruma döndürür. Göçünü kurmak/kaldırmak gibi bir şey. Bu yöntemlerden yalnızca biri, update-database'u çağırdığınızda yürütülür. Down yöntemini kullanmak için, yükseltmeniz için hedef geçişi açıkça belirtmeniz gerekir. Hedef geçiş eski olanıysa, taşıma API'si otomatik olarak Down yöntemini kullanır ve veritabanınızı indirir.

20

Sadece @Ladislav Mrnka'ya eklemek için. İlk kez() Aşağı kullanmak için gerekli ve bu yüzden, o iş yapmak bana biraz zaman aldı:

Update-Database -Target:201407242157114_46 

benim son göç (yeni şeyler eklendi) 47 olduğu yere. Here's a nice explanation, veritabanını nasıl geri yükleyeceğiniz ve kötü bir geçişi nasıl kaldıracağından bahseder.

Başka sihirbaz çıraklarına yardımcı olabileceğini umuyorum :)