まずでEF5の移行を実行することができません、私が読んだこれらの質問/答えは:既存のデータベース
- EF-migration message
- How can I stop Add-Migration checking my database has no pending migrations when using Code-Based migrations?
- Make EF4.3 Code First Migrations ignore pending migrations
これらのすべては、EFのためにあるように見えますEF5以前のバージョンでは、私の状況はこれらの答えに合っていないようです。だから私の状況を説明しましょう。
- 私のアプリケーションは、もともとEF4モデルを使用して作成されました。私はGUIデザイナーでデータベースを設計し、それを使ってデータベースを生成しました。
- 私は数ヶ月間、データベースにデータを収集し、収集しています。私は本当にこのデータを失うことはできません。
- 私は自分のコードを分岐し、NuGetでEF5をインストールし、新しいクラスライブラリプロジェクトを右クリックして
Entity Framework | Reverse engineer code first
を選択して、EF Power Toolsを使用してデータベースからモデルを生成しました。 - 私は新しいプロジェクトにスムーズに再参照し、ObjectContextではなく新しいDbContextを使用するようにプロジェクトを変換し、古いモデルを保持していたEF4クラスライブラリを削除できました。プログラムはすごくうまくいきます!
ここで、私はRuby on Railsで少し経験があった自動移行を試してみたいと思います。ここに私がしたことがあります:
- Ran
Enable-Migrations
接続文字列とapp.configが使用されていたために少し問題がありましたが、結局それを手に入れました。しかし、this MSDN pageは、これが私がすでにいるところまで私を連れて来るための最初の移行を自動的に生成したはずだと言います。それはしませんでした。 - Ran
Add-Migration InitialSchema
手順1で自動的に行われなかったことを達成する。これはうまくいった。 - は
Add-Migration AddSerialToLogEntries
を実行しようとし、その後、私のモデルオブジェクトのいずれかにプロパティを追加しました、として発表された次の 明示的なマイグレーションが保留されているので、
明示的な移行を生成することができません:[201307190100268_InitialSchema] 。 新しい明示的な移行を生成する前に、保留中の明示的な移行を適用してください。
既存のデータベースでの移行を試行すると失敗しました。これは驚くべきことではありません。
上記の他の回答は基本的には私が運がないと言っていましたが、私はEntity Frameworkの古いバージョンのものだと言いました。私はここにオプションがありますか?
SQL Server Management Studioを使用してSQLスクリプトにデータをエクスポートしたり、データベース全体を削除したり、EFで作成したり、スクリプトを実行してデータを元に戻したりすることができます...私は時間があるとき明日それを試してみますが、私は100%が動作し、プロセスに挿入されたデータにエラーが発生したくないと思うので、他のオプションがあるかどうか聞いてみたいと思います。
偉大な、詳細な答え。できるだけ早くあなたの歩みを試してみます。 Migrationsフォルダを単に削除するだけで、有効化移行を "元に戻す"ことができますが、最初の移行のUpとDownメソッドを削除してからやり直すこともできますか? – Steve
@スティーブ:はい、それはうまくいくはずです。 – Slauma
偉大な働きました、ありがとう! – Steve