EntityFramework5.0とCodeFirstを使用するASP.NETMVCアプリケーションがあります。
VisualStudio2012を使用して自分のWebサイトをAzureWebサイトに公開しました。シードデータがSQLAzureに挿入されないことを除いて、すべてが機能しているようです。ウェブサイトは機能し、データベースは構築されますが、シードデータは挿入されません。これをローカルマシンで実行すると、すべてが正しく機能します。
私が見た例に基づくと、Visual Studio 2012から公開する場合、「コードの最初の移行を実行する」というオプションがあります(下の画像を参照)。
しかし、自分のWebサイトを公開しようとすると、「コードの最初の移行を実行する」オプションが使用できません。
これは、私のソリューションの構成方法と関係があると思います。アプリケーションを構成する3つのプロジェクトがあります。
- Webサイト–これはASP.NETMVCプロジェクトです。参照エンティティフレームワークがありますが、すべてのデータアクセスコード(DBContext)はデータプロジェクトにあります
- ドメイン–これはクラスライブラリです。EntityFrameworkへの参照はありません
- データ–このプロジェクトはEntityFrameworkを参照しています。DbMigrationsConfigurationから継承するConfigurationクラスがあります。このConfigurationクラスでは、Seedメソッドをオーバーライドします。
繰り返しますが、これはすべて私のローカルPCで機能します。ほとんどの場合、すべてがAzureで機能します。Webサイトは機能し、データベースは構築されますが、シードデータは挿入されません。
私のシナリオでは、Visual Studio2012から公開するときにシードデータを取得してSQLAzureに挿入する方法に関する推奨事項はありますか?