モデル変更後のデータベースの更新 - Entity Framework 7

asp.net-core-mvc asp.net-mvc c# entity-framework entity-framework-core

質問

私は、最新のASP.NET5 MVC 6 Entity Framework 7を使用してアプリケーションを作成し、

dnx . ef migration add Initial
dnx . ef migration apply

これは機能しますが、モデルを変更するとデータベースは更新されません。私はプログラムを実行すると、モデルの変更後にデータベースを自動的に更新したいと思います。

私の研究は、Entity Framework 7には適切ではない古い情報を指摘しています。

私の現在のコード:

 public ApplicationDbContext(): base()
   {

        if (!_created)
        {

             Database.AsRelational().ApplyMigrations();
             _created = true;         
        }
  }

誰かが私を正しい方向に向けることができますか?

私はそれがこのようなことをするのに使うと信じています:

Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());

受け入れられた回答

コマンドラインからEF7を使って手動でマイグレーションを実行するか、コードからDatabase.Migrateを呼び出す必要があります。EF7に自動化されたものはありません(故意の決定)。モデルを変更した後、


人気のある回答

移行の作成とデータベース構造の更新プロセスとの間に混乱が生じるようです。

EF7では、移行(現在のデータベース構造とエンティティ定義の間の差分)を自動的に生成することはできません。これは、 "migrations add"コマンドを使用してコマンドラインで実行する必要があります。

ただし、データベースの構造を更新することは、コードを介して行うことができます。これは、dbContext.Database.Migrate()メソッドを使用して行います。これを起動時に配線することで、アプリが最初に起動したときにデータベースが現在のバージョンのアプリで最新になっていることを確認できます。

開発ワークフローは次のようになります。

  1. エンティティ定義を変更する
  2. "migrations add"コマンドを実行する
  3. あなたのアプリを起動する*

    • 上記の3番はあなたのスタートアップで上記のMigrate()コールを結んだことを前提としています。それ以外の場合は、データベース更新コマンドを手動で実行する必要があります。


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ