Windows Azure を使用して MVC3 アプリケーションを公開しようとしています。Publish Web アプリケーションの設定パネルにある Execute Code First Migration のチェック ボックスがグレー表示されます。有効にするには、どのような変更を加える必要がありますか?
2 に答える
MVC アプリケーションを公開しようとすると、次の「コードの最初の移行を実行」が無効になっていると思います。
これは、ここで説明されているように、アプリケーションでコード移行用に完全なコードが記述されていないか、web.config で DB が設定されていないか正しくないことが原因である可能性があります。
コード移行を有効にするには、web.config で DB を構成する必要があり (Windows Azure の場合は、web.config で SQL データベース情報を提供する必要があります)、完全なクラスはコード移行がどのように行われるかについて書かれています。モデルによって異なります。これを達成する方法の例を次に示します。
http://msdn.microsoft.com/en-us/library/dd394698#efcfmigrations
Entity Frameworkモデルがあり、データベースに既にあると想定しています(そうでない場合は、読む必要があります。@AvkashChauhanによる回答は確かに良い出発点になります)。
ただし、モデルと次のようなすべての構成がある場合:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new YourEntityMap());
}
そして、次のようなすべてのエンティティ マッピング:
public class YourEntityMap : EntityTypeConfiguration<YourEntity>
{
public YourEntityMap()
{
this.HasKey(t => t.Id);
}
}
それでもチェックボックスが有効になっていない場合は、次の手順を実行することをお勧めします。
に行くTools
> NuGet Package Manager
>Package Manager Console
次に、コンソールで書き込みます
Enable-Migrations -ContextTypeName Company.Models.YourDevContext
データベース コンテキストはどこにCompany.Models.YourDevContext
ありますか (継承元のクラスがオーバーライドDbContext
されているものと同じであることを確認してください)。OnModelCreating
コマンドを実行すると、次のようになります。
この時点でMigrations
、ソリューションにフォルダーを追加する必要があります。ここで移行を処理する方法について詳しく説明します。
これで時間が節約できることを願っています。