ASP.NET MVC4 - 自定义默认帐户模型时出错&调节器

时间:2013-01-19 10:55:42

标签: asp.net asp.net-mvc-4 entity-framework-5

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

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

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

我认为这是因为数据库在更新模型时未更新。所以我在Application_Start()中的Global.asax上设置了以下内容,目的是始终对数据库进行droppnng(至少直到我得到它为止)。

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

我也尝试了DropCreateDatabaseIfModelChanges,但两种方法都没有丢弃数据库。

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

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

UserProfiles添加到网站上下文也是一个坏主意(比方说:DatabaseContext(其他实体如帖子,评论等)并更改AccountsController即可使用DatabaseContext代替UsersContext

提前致谢。

1 个答案:

答案 0 :(得分:1)

您是否在Package Manager控制台中运行Enable-Migrations?您应该在项目中看到一个迁移文件夹,其中包含configuration.cs文件,确保您已启用自动迁移。

public Configuration(){
    AutomaticMigrationsEnabled = true;
    //if you drop columns - consider this carefully...
    AutomaticMigrationDataLossAllowed = true;
}