3

我在这里发现了几个与此相关的问题,但我并不完全在那里。我正在尝试将第二个 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; }
}

谢谢,

乔尔

4

1 回答 1

1

看到这个,试试这个:

public class CourseRegistration
{
   [Key]
   public int RegistrationId { get; set; }    
   public virtual UserProfile user { get; set; }
   [ForeignKey("InstructorId")]
   public virtual UserProfile Instructor { get; set; }
}
于 2013-07-27T16:28:20.530 回答