25

EntityFramwork4.3とその移行を使用するASP.NETMVC3プロジェクトがあります。ここで、Entity Frameworkに、既に行っている移行を使用してデータベースを作成してもらいたいと思います。Update-Databaseスクリプトを実行しようとすると、次のようになります。

Update-Database -Verbose -ProjectName AssemblyWithMigrations -StartUpProjectName WebProjectAssembly No migrations configuration type was found in the assembly '/* my name of assembly */'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration).

しかし、実行しようとすると、Enable-Migrations次のように表示されます。

Migrations have already been enabled in project 'AssemblyWithMigrations '. To overwrite the existing migrations configuration, use the -Force parameter.

したがって、問題はEFが現在の移行バージョンを解決してデータベースを更新しようとしていることだと思います。しかし、データベースは存在せず、明らかに失敗します。

問題は、データベースが存在しない場合に、データベースを作成するためにEF移行をどのように使用するかということです。または、Nugetコンソールを使用してそれを行う正しい方法は何ですか?

要約すると、私が望むものは次のとおりです。1. update-databaseweb.configファイルを使用してデータベースを作成するコマンド(おそらく)を実行します。2。すべての移行は、作成されたデータベースに作成順に適用されます。

ありがとう。:)

4

2 に答える 2

54

これは古い質問だと思いますが、一体何なのですか....

移行を有効にして初期データベースを作成するには、次の方法がうまく機能することがわかりました。

  1. SQL Server オブジェクト エクスプローラー内からデータベースを削除する
  2. Migrations フォルダー内から既存のすべての移行を削除します。
  3. パッケージ管理コンソールで「Add-Migration InitialCreate」と入力します

    [オプション、データベース初期化子に応じて]

  4. パッケージ管理コンソールで「update-database」と入力します

これにより、「データベースなし」から現在のモデルに一致するデータベースを持つ単一の移行スクリプトが得られます。

于 2013-05-01T16:28:58.230 に答える