【发布时间】:2016-09-15 22:10:31
【问题描述】:
我是 Entity Framework 的新手,但我正在使用 EF 6.1 和 MVC5 并尝试构建一个与自身相关的 Course 实体(Course 具有一对一的 pre-req 课程或一对多)。如何使用 EF 和 CRUD 功能实现这一点?
我的模型如下:物理模型有一个与Course 匹配的Course 表和一个有3 列的prereq 表:prereqId、courseNo、preReqCourseNo。
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 virtual ICollection<DeptCourse> DeptCourse { get; set; }
public virtual ICollection<Course> PreReq { get; set; }
}
目标是能够在创建页面中定义这些属性,以便用户可以从下拉列表中选择一个或多个课程编号,并使用它们之间的关系更新两个表。一门课程可以有一个或多个前提课程。谢谢你。
【问题讨论】:
-
我已经有一段时间没有这样做了,但这不是多对多(例如,多门课程可能是多门不同课程的要求?)无论如何,您可能想要添加一个“IsPreReqFor”互惠属性,因此您可以在任一方向导航。毫无疑问,很快就会有人给你外键的语法
-
我确实有一个用于 prereq 复选框的布尔值,如果用户选择它,我会提供一个部分视图,其中包含可供选择的课程下拉列表。
-
我的意思是走另一条路……说当然 X 需要 A、B、C,而课程 Y 需要 A、C、F。看课程 C 时能够说出来可能会很好“本课程是 X 和 Y 的要求”。不需要额外的数据,只需能够在任一方向导航“需求”约束即可。
-
到底是什么问题?您是否在寻求编码 CRUD 部分的帮助?如果是这样,请出示您现有的代码。
标签: c# entity-framework asp.net-mvc-5