将新表添加到现有数据库不起作用 - EF Code First

时间:2016-06-12 00:45:56

标签: c# database entity-framework

我有一个现有的数据库,我首先使用Ado.net创建,然后使用Ado.net数据模型向导将其转换为代码。我可以很好地从数据库中检索值,但我无法将新表添加到数据库中。

例如,我有这个表,我想添加到Db:

    public class ChatUser
{
    public int ChatUserID { get; set; }
    public string ConnectionID { get; set; }
    public string UserName { get; set; }

    public int ConversationID { get; set; }

    [ForeignKey("ConversationID")]
    public Conversation Conversation { get; set; }
}

我在DbContext类中添加了这个:

public virtual DbSet<ChatUser> ChatUsers { get; set; }

然后我在Package manager控制台中运行了这些命令:

Add-Migration Initial

Update-Database

在更新数据库之前,我删除了DbMigration类中Up()和Down()中的所有内容,只留下了这里提到的新模型的内容:http://christesene.com/entity-framework-4-3-code-first-with-automatic-migrations/但我的数据库没有反映这些内容我发现新的迁移存储在数据库的Migration表中。 我错过了什么?

1 个答案:

答案 0 :(得分:0)

您之前尝试的表仍将存在于您的数据库中。您有两种选择:

  • 撤消所有现有迁移,不要删除迁移文件的内容
  • 删除服务器中的数据库,然后再次运行Add-migrationUpdate-database命令