繁体   English   中英

将新表添加到现有数据库不起作用-EF代码优先

[英]Adding new tables to existing database does not work - EF Code First

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

例如,我有要添加到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; }

然后在程序包管理器控制台中运行以下命令:

Add-Migration Initial

Update-Database

在更新数据库之前,我删除了DbMigration类中Up()和Down()中的所有内容,仅保留了新模型的内容,如此处所述: http ://christesene.com/entity-framework-4-3- code-first-with-automatic-migrations / ,尽管我可以看到新的迁移存储在数据库的Migration表中,但我的数据库没有反映出这些更改。 我想念什么?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM