代码首先在实体框架中映射

时间:2017-05-16 06:16:29

标签: entity-framework entity-framework-6 code-first foreign-key-relationship

我使用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表中时出错?

0 个答案:

没有答案