实体框架添加迁移无法检测我对外键所做的更改

时间:2015-09-22 06:24:59

标签: entity-framework ef-code-first foreign-keys entity-framework-6 ef-migrations

我正在使用Entity Framework Code First方法。我能够使用Add-Migration自动检测何时将新表添加到我的上下文中。但是,当我更改其中一个模型上的外键时,Add-Migration无法检测到更改并生成更新外键的代码。

这是我的模特

public class PhoneInfo
{
    [Key]
    [Column(Order = 2)]
    public String ID { get; set; }
    [Required]
    [Key]
    [ForeignKey("Contact"), Column(Order = 1)]
    public String UserID { get; set; }
    [Required]
    [Key]
    [ForeignKey("Contact"), Column(Order = 0)]
    public String ContactID { get; set; }
    public String Value { get; set; }
    public DateTime LastChanged { get; set; }
    public String Type { get; set; }
    public int Order { get; set; }
    public bool IsDeleted { get; set; }
    public DateTime DeletedDate { get; set; }
    public virtual Contact Contact { get; set; }
}

我正在更新

下面的列(Order = 1)
[ForeignKey("Contact"), Column(Order = 1)]

有没有办法让Add-Migration自动生成我需要更新数据库的代码?

2 个答案:

答案 0 :(得分:0)

对于迁移,您需要在包管理器控制台中执行两个命令:

1. Add-Migration AddOrder1ContactFK
2. Update-Database

答案 1 :(得分:0)

将AutomaticMigrationsEnabled属性设置为true,该属性在Configuration.cs的构造函数中定义。首次启用迁移时,其默认值为false。然后重建您的解决方案并再次尝试更新数据库。