Veritabanımız için Kod İlk Entity Framework'ü kullandığımız bir projedeyim.Programlı kod ilk geçişleri oluşturma
Oluşturulan bir MSI paketini tüketmek için sürekli entegrasyonumuzun tamamını değiştirmek istiyoruz ancak EF birkaç komplikasyon sunuyor.
- modeli değişirse, aksi Kod Tabanlı Göç üretmek zorunda olduklarında paket Biz ( https://msdn.microsoft.com/en-us/data/dn481501.aspx göre) ekibinden göçler oluşturulmasını kaldırmak için tercih (Model vs Veritabanı)
- kıracak
web'den çeşitli şeyler denedi, ama en AutomaticMigrations
true
yanı sıra AutomaticMigrationDataLossAllowed
ayarlı gerektirir görünmektedir (bkz: http://romiller.com/2012/02/09/running-scripting-migrations-from-code/).
.NET yansıtıcısına bakarak Add-Migration
'un ne yaptığını çoğaltmaya çalıştım ancak Powershell aracılığıyla çağrılan System.Data.Entity.Migrations.AddMigrationCommand
komutunu çağırmanın bir yolunu bulamıyorum.
Son derece dağınık bir şey yapmadan bunu başarmaya nasıl yaklaşabileceğim konusunda hiç kimse hiç bir fikre sahip değil mi? Bir çok insanın yapmak istediği/yapacağı bir şey var ...
Çok teşekkürler şimdiden!
Bu aracın gerçekten taşıma dosyaları oluşturup bunları projeye eklemesini ister misiniz? Veya veritabanını mevcut kod şemanızla mı güncelleyin? Eğer ikincisiyse, otomatik geçişler neden bir seçenek değil? Eğer eskiyse, 'Add-Migration' komutunu çalıştıran bir derleme etkinliği ekleyemez misiniz? – Rob
@Rob CI'mızın bunu tüketebileceği ve bizim için bir taşıma arkamızdaki bizim geçişlerimizi yaratabileceğimiz bir araç yaratmaya çalışıyoruz. Bu, bir MSI'yi otomatik olarak bu işlemden oluşturmamızı sağlar, böylece model geçişler ile senkronize kalır ve MSI kırılmaz. Veritabanımızın ölçeğinden dolayı, otomatik geçişler neredeyse kesinlikle otomatik veri kaybına yol açacaktır. "Add-Migration", VS kabuğunun dışından erişilebilir gibi görünmüyor. – LukeHennerley
"Otomatik geçişler neredeyse otomatik veri kaybına yol açacaktır" konusuna açıklık getirebilir misiniz? Neden * * komut dosyanızla çalışan Add-Migration ve EF Add-Migration çalışanı arasında bir fark olduğunu düşünüyorsunuz? Yoksa bu sadece manuel geçişleri çalıştırmak ve otomatik/manuel karıştırmadan kaçınmak mı istiyorsunuz? –