我使用Code First Approach创建了3个表。当我在学生表上执行查找时,我得到以下模型验证异常。
Student_courses_Target_Student_courses_Source ::关系约束中的从属角色和主要角色中的属性数必须相同。
public class University
{
[Key]
public string Uni_ID { get; set; }
public virtual List<Course> Courses { get; set; }
}
public class Course
{
[Key]
[Column(Order = 1)]
public string Course_ID { get; set; }
[Key,ForeignKey("uni")]
[Column(Order = 2)]
public string Uni_ID { get; set; }
public virtual ICollection<Student> Students { get; set; }
public virtual University uni { get; set; }
}
public class Student
{
[Key,ForeignKey("course"), Column(Order = 1)]
public string Course_ID { get; set; }
[ForeignKey("course"),Column(Order = 2)]
public string Uni_ID { get; set; }
[Key]
[Column(Order = 3)]
public string Student_ID { get; set; }
public virtual Course course { get; set; }
}
根据我的理解,异常意味着我没有将学生表中的外键映射到课程表中的主键。但我已经做到了。是否存在关于“Uni_ID”如何在大学课程和课程表中作为主键出现的问题,也许我在将它作为外键引用到Student表中时出错?