EF5 Code First ALTER TABLE语句与FOREIGN KEY约束冲突

时间:2013-05-07 00:36:17

标签: asp.net asp.net-mvc-4 entity-framework-5 ef-migrations

我在这里找到了几个与此相关的问题,但我不是那里。我正在尝试将第二个UserProfile属性添加到现有的CourseRegistration类中。当我尝试执行迁移时,我得到“ALTER TABLE语句与FOREIGN KEY约束冲突”FK_dbo.CourseRegistrations_dbo.UserProfile_InstructorId“

我认为我可以通过一些流畅的配置来解决它,但它没有任何效果。基于我所读到的,我认为问题在于现有数据不允许这样做。

问题1:我并不完全理解它所抱怨的内容,并且如果有人能说清楚的话,我想更好地理解它。 问题2:除了删除表格或删除数据之外,还有其他解决方法吗?我这次不介意这样做,但我确信在某些情况下这不是一种选择。

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
}

public class CourseRegistration
{
    [Key]
    public int RegistrationId { get; set; }
    public int UserId { get; set; }
    public int? InstructorId { get; set; }

    public virtual UserProfile user { get; set; }
    public virtual UserProfile Instructor { get; set; }
}

谢谢,

乔尔

1 个答案:

答案 0 :(得分:1)

请参阅this,然后尝试:

public class CourseRegistration
{
   [Key]
   public int RegistrationId { get; set; }    
   public virtual UserProfile user { get; set; }
   [ForeignKey("InstructorId")]
   public virtual UserProfile Instructor { get; set; }
}