实体框架代码首次迁移手动删除了导致迁移问题的列

时间:2012-08-22 15:48:53

标签: entity-framework ef-migrations

我有一个具有Admin对象的Blog对象。我最初设置错误,并且错误地创建了我的列。我手动删除了“Admin_Id”外键字段和关系。现在,当我再次运行迁移时,它不会再添加外键和关系。

我可以以某种方式强制实体框架再次更新数据库吗?

我的对象:

管理

public class Admin: WebPage, IWebPage
{
    public string Name { get; set; }
    public string Email { get; set; }
    public string About { get; set; }
    public string Image { get; set; }

    public List<Blog> Blogs { get; set; }
}

博客

public class Blog : WebPage, IWebPage
{
    public string Title { get; set; }
    public string Summary { get; set; }
    public string ArticleBody { get; set; }
    public string Author { get; set; }
    public DateTime PostingDate { get; set; }

    public virtual Admin Admin { get; set; }
    public virtual BlogCategory BlogCategory { get; set; }
    public virtual List<Comment> Comments { get; set; }
}

1 个答案:

答案 0 :(得分:0)

实体框架将已应用于数据库的迁移存储在__MigrationHistory表中。如果删除此表中表示特定迁移的行(MigrationId列包含迁移类的名称),则下次执行update-database时将重新应用该迁移。

也就是说,这将导致重新应用整个迁移,而不仅仅是数据库中恰好缺少的部分,包括所有表创建,丢弃等等。 ,如果以前没有手动退出迁移已经实施的更改,请小心使用它,因为如果数据库对象已经存在,其中一些操作可能会导致错误。