我是Entity Framework的新手,但我正在使用EF 6.1和MVC5并尝试构建一个与自身有关系的Course
实体(Course
有一个pre-req课程(s )一对一或一对多)。如何使用EF和CRUD功能实现这一目标?
我的模型如下:物理模型有Course
表与Course
匹配,prereq
表有3列:prereqId
,{{1 },courseNo
。
preReqCourseNo
目标是能够在创建页面中定义这些属性,以便用户可以从下拉列表中选择课程编号或倍数,并使用它们之间的关系更新这两个表。课程可以有一个或多个必修课程。谢谢。
答案 0 :(得分:0)
正如Basic建议的那样,我认为这确实是一种多对多的关系。但如果真的是一对多的话,你可以像这样制作你的模型:
public class Course
{
public int CourseId { get; set; }
public string CourseNumber { get; set; }
public string CourseName { get; set; }
public decimal Credits { get; set; }
public bool? PreReq { get; set; }
public int DepartmentID { get; set; }
public int? PreRequisiteForCourseId {get; set;}
public virtual Course PreRequisiteForCourse {get; set;}
[InverseProperty("PreRequisiteForCourse")]
public virtual ICollection<Course> PreReq { get; set; }
}
在这种情况下,每门课程只能是一门课程的先决条件。