Veritabanımla bazı ilişkileri olan ve daha sonra Add-Migration
çalıştıran yeni bir tablo eklediğimde, tablo ve ilişkilerini eklemek için Up
yönteminde bu kodun üretildiğini görüyorum. Bununla birlikte, OnModelCreating
yöntemindeki akıcı API'yi kullanarak ilişkiyi tanımlamayı tercih ediyorum. Bu iki yöntem nasıl etkileşir? Örneğin ilişkiyi tanımlayan Up
yönteminden kodu silebilir miyim?OnModelCreating ve otomatik olmayan Göçler nasıl ilişkilendirilir?
6
A
cevap
11
Her biri bambaşka bir amacı vardır:
OnModelCreating
Modelinizin satır içi akıcı-API tanımları için kullanılır. Bu tanımlamalar, varsayılan kurallar, veri ek açıklamaları ve yapılandırma sınıflarıyla birlikte modelin tam tanımını oluşturur.- Açık göç veritabanına ne yapılmalıdır bu iki ilişki nasıl geçerli modeline Şimdi
gerektirdiği forma, taşımanız tanımlar? Taşıma, geçiş kodu oluşturmak için kullanılan iki girdiye sahiptir (Up
ve Down
yöntemleri). Bir girdi, veritabanındaki __MigrationHistory
tablosunda depolanan son geçiş kaydıdır. Bu kayıt, veritabanını temsil eden serileştirilmiş modeli içerir. Bu girdi isteğe bağlıdır, çünkü ilk geçişin bu olmadan çalışması gerekir. İkinci giriş zorunludur - geçerli derlemenizdeki kodu uygulayarak alınan geçerli modeliniz =>Add-Migration
, geçerli modeli almak ve veritabanından alınan modelle karşılaştırmak için OnModelCreating
'u çalıştırır. Karşılaştırmanın sonucu, açık geçişte Up
ve Down
yöntemlerinin içeriğidir.
Teşekkürler! Yani, doğru şekilde anladığım takdirde, 'Yukarı 'yöntemindeki kod,' OnModelCreating' yönteminde belirlenen tanımları yansıtır (tabii ki akıcı API tanımını yazdıktan sonra bir Göç eklediğinizi varsayalım). Biri * bu yansıtılmış tanımları 'Yukarı'dan kaldırmamalıdır. – Dabblernl
Evet, bu doğru. –