我在这里找到了几个与此相关的问题,但我不是那里。我正在尝试将第二个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; }
}
谢谢,
乔尔
答案 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; }
}