2013-01-30 11 views
8

私はコードファーストクラスを作成しましたEF CodeFirstテーブルを再作成するには?

データベースはSqlで自動的に作成されました。

私はテーブルを削除:(

私が有効に移行があります。

AutomaticMigrationsEnabled = true; 
AutomaticMigrationDataLossAllowed = true; 
Database.SetInitializer(new DropCreateDatabaseAlways<SurveyContext>()); 

はまだありません

update-database -force 

Cannot find the object "dbo.CustomerResponses" because it does not exist or you do not have permissions. 

時に助けてくださいを

+0

にあなたのDBを再作成しますか? – IronMan84

+0

あなたはgoogleにしようとしましたか? ""存在しないか、権限がないのでオブジェクトを見つけることができません "_? – spajce

答えて

0

私は過去にそのエラーメッセージを持っていました....

接続文字列で指定したデータベースが作成されているかどうかを確認します。そうでない場合は作成し、コードを実行します。システムテーブルに

7

__MigrationHistory 

と呼ばれるテーブルがあります...私はそれを削除しました。

パッケージマネージャコンソールのコマンド "update-database"が実行されました 問題が修正されました。

さらに詳しい情報:

http://blog.oneunicorn.com/2012/02/27/code-first-migrations-making-__migrationhistory-not-a-system-table/

+0

プロジェクトで定義されている移行情報がある場合にのみ動作するように見えます。 '' {'project_name}' 'アセンブリでは移行設定の種類が見つかりませんでした。しかし、それは試してみる価値がありました。 – iiminov

+0

手元のトピックへの便利なリンク - https://msdn.microsoft.com/en-us/data/jj591621.aspx – iiminov

+0

このソリューションの欠点は、移行履歴が失われることです。 – jk7

2

のDafデGIRAFは、移行の履歴を一掃しない良い答えhereを持っています。

あなたは コマンドAdd-Migration "Name_Of_Migration"を使用して移行を作成するための正しい方法を働いていたなら、あなたは がクリーンスタート取得するために次の操作を行うことができます( もちろん、データの損失をリセット、) :ダウンメソッドが実行されて以来

  1. Update-database -TargetMigration:0
    通常、あなたのDBは現在空です。

  2. Update-database これはあなたの状況は次のようになりんは何あなたの現在の移行

関連する問題