0

ASP.NET MVC4 CodeFirst アプローチを使用して簡単な Web サイトを作成し始めています。Web サイトは、登録、投稿などを行うことができるユーザーを中心に構築されています。既存のUserProfileクラスは、宿泊施設の他のフィールド (例: FirstName、LastName など) 用に変更されました。

Web サイトを実行すると、同様のエラーが発生しました。

Invalid column name 'FirstName'.
Invalid column name 'LastName'.
Invalid column name 'Phone'.

これは、モデルが更新されてもデータベースが更新されないためだと思います。Application_Start()そのため、データベースを常にドロップするつもりでGlobal.asax(少なくともコツをつかむまで)、次のように設定しました。

protected void Application_Start()
    {
        Database.SetInitializer(new DropCreateDatabaseAlways<UsersContext>());
        //Other default generated stuff below...
    }

も試しましたDropCreateDatabaseIfModelChangesが、どちらの方法でもデータベースは削除されませんでした。

これは可能ではありませんか?それはなぜです?私は何か間違ったことをしていますか?

情報を別のテーブルに保存してこれにリンクすることは可能だと思いますが、1 つのテーブルに保持することを好みます。

UserProfilesまた、ウェブサイトのコンテキストに追加するのは悪い考えDatabaseContextですか?AccountsControllerDatabaseContextUsersContext

前もって感謝します。

4

1 に答える 1

1

Enable-Migrationsパッケージ マネージャー コンソールで実行しましたか? プロジェクトに移行フォルダーが表示され、configuration.cs ファイルが含まれているので、自動移行が有効になっていることを確認してください。

public Configuration(){
    AutomaticMigrationsEnabled = true;
    //if you drop columns - consider this carefully...
    AutomaticMigrationDataLossAllowed = true;
}
于 2013-01-19T11:00:23.853 に答える