2015-10-17 16 views
7

Yerel olarak ASP.NET 4.6 ve EF7 ile bir MVC projesi yürüttüm ve her şey iyi çalışıyor. Dnx'i çalıştırdım. ef geçiş Veritabanı tablolarını oluşturmak için ilk komutlar ve her şey yolunda gitti. Uygulama çalışır.Azure'da DNX (EF7) veritabanı geçişi çalıştırılıyor

Azure ile bir sorunum var, dnx'i çalıştırıyorum gibi görünmüyor. ef migrasyon komutu böylece SQL veritabanım boş. Startup.cs hata ayıklandı ve bağlantı dizesi doğru şekilde alındı, ancak tablolar yok.

Azure Web App uygulamasına dağıtmak için Visual Studio 2015'teki Yayınla seçeneğini kullandım.

Bu komutu web uygulamamda nasıl çalıştırabilirim? Veritabanını oluşturmanın başka bir yolu var mı?

Teşekkür

+0

Önümde yok, ancak yayınlama seçeneklerine inanıyorum, "yayınlamada EF yayınlarını çalıştırma" var. Şunu gördün mü? – mason

+1

En azından Visual Studio 2015, EF7, DNX Beta 5'te böyle bir seçenek yoktur. –

cevap

10

O EF ekibi rezil veritabanı başlatıcıları elimine ve 7.

Sadece veritabanına herhangi aramadan önce boru hattında bu yöntemleri kullanmak sürümüne bunun için daha çok yönlü bir yöntem sunar gibi görünüyor ,

yourDbContext.Database.EnsureCreated(); 

varolduğundan çalışmaması durumunda veritabanı ve

yourDbContext.Database.Migrate(); 
oluşturmak için Taşmaları uygulamak için

(bu özelliği daha sonra kullanırsanız). Yukarıdaki her iki yöntem de eşzamansız bir sürüme sahiptir.

Çözümümde, veritabanını başlatmak için kullandığım ve bazı verilerle eklediğim statik bir sınıf oluşturdum. Bazı koşullar sağlandığında, Başlangıç ​​sınıfındaki Configure yönteminden Seed yöntemini çağırırım.

+0

'.Migrate 'komutu (yeniden) taşınmış gibi görünüyor. Şimdi ne yapacağını bilen var mı? – Sean

+0

Julie Lerman, EF uzayında iyi bilinen bir isim yazdı. EF 7'de otomatik geçişler ile işlerini hallediyor gibi görünüyor. Https://msdn.microsoft.com/en-us/magazine/mt614250.aspx – dotnethaggis

+0

Database.Migrate benim DbContext. – dotnethaggis