7

私はASP.NET 4.6とEF7を使用してMVCプロジェクトをローカルで実行しており、すべて正常に動作しています。私はdnxを走らせた。 ef migrationデータベーステーブルを作成するための初期コマンド。すべて正常に動作しました。アプリは動作します。AzureでのDNX(EF7)データベースの移行

私は1つの問題がありますが、私はdnxを実行することはできません。 ef migrationコマンドを実行して、SQLデータベースが空であるようにします。 Startup.csをデバッグして接続文字列が正しく取得されましたが、テーブルは存在しません。

私はAzure Web Appに展開するためにVisual Studio 2015の[公開]オプションを使用しました。

ウェブアプリケーションでこのコマンドを実行するにはどうすればよいですか?データベースを生成する別の方法はありますか?それだけで、データベースへの呼び出しの前にパイプラインでこれらのメソッドを使用EFチームは悪名高いデータベースの初期化子を排除しているようだと、バージョン7

にそのため、より汎用的な方法を提供しています

おかげ

+0

私は私の前にそれを持っていませんが、私は公開オプションを信じています。「公開時にEFマイグレーションを実行する」とあります。あれ見た? – mason

+1

少なくともVisual Studio 2015、EF7、DNX Beta 5にはこのようなオプションはありません。 –

答えて

10

yourDbContext.Database.EnsureCreated(); 

それが存在していて、

yourDbContext.Database.Migrate(); 
ない場合にデータベースを作成するには

移行を適用する(この機能を後で使用する場合)。上記の両方のメソッドには、非同期バージョンもあります。

私の解決策では、私はデータベースを初期化し、いくつかのデータをシードするために使用する静的クラスを作成しました。いくつかの条件が満たされたときにStartupクラスのConfigureメソッドからSeedメソッドを呼び出します。

+0

'.Migrate'コマンドが(再)移動されたようです。誰が今何をすべきか知っていますか? – Sean

+0

EFスペースで有名なJulie Lermanが記事を書いています。 EF 7で自動移行を済ませたようです。https://msdn.microsoft.com/en-us/magazine/mt614250.aspx – dotnethaggis

+0

これは、私がDatabase.Migrateをコンストラクタから使用できると言われています。私のDbContext。 – dotnethaggis

関連する問題