0

我正在开始使用 ASP.NET MVC4 CodeFirst 方法制作一个简单的网站。该网站是围绕能够注册、发布帖子等的用户构建的。现有的UserProfile类已针对住宿其他字段(例如:名字、姓氏等)进行了修改。

当我运行该网站时,我遇到了类似的错误:

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,但两种方法都没有删除数据库。

这不可能吗?为什么?难道我做错了什么?

我相信可以将信息存储在另一个表中并将其链接到此表,但我更喜欢将其保存在一个表中。

UserProfiles添加到网站上下文中也是一个坏主意(可以说:(DatabaseContext其中有其他实体,如帖子、评论等)并更改AccountsController为使用DatabaseContext而不是UsersContext

提前致谢。

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 回答