我有一个具有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; }
}
答案 0 :(得分:0)
实体框架将已应用于数据库的迁移存储在__MigrationHistory
表中。如果删除此表中表示特定迁移的行(MigrationId
列包含迁移类的名称),则下次执行update-database
时将重新应用该迁移。
也就是说,这将导致重新应用整个迁移,而不仅仅是数据库中恰好缺少的部分,包括所有表创建,丢弃等等。 ,如果以前没有手动退出迁移已经实施的更改,请小心使用它,因为如果数据库对象已经存在,其中一些操作可能会导致错误。