我正在使用Code First LINQ To SQL方法并尝试使用联结表从两个表中检索记录 . 我以非常简单的方式构建了数据模型,并在子类中包含Foriegn Keys作为“CourseId”等属性(课程ID是Program Class中的主键) .
因此,我的多对多关系以某种方式在以下类中构建:
程序(ProgramId,ProgramName)课程(CourseId,CourseName,CreditPts)ProgramCourse(ProgramId,CourseId)< - 连接表
这是我的数据模型 .
public class ProgramCourse
{
[Required]
public int ProgramId { get; set; }
[Required]
public int CourseId { get; set; }
}
public class Program
{
public int ProgramId { get; set; }
[Required]
[Display(Name = "Program Name")]
public string ProgramName { get; set; }
public int InstituteId { get; set; }
// public virtual Institute Institute { get; set; }
}
class Course
{
public int CourseID { get; set; }
[Required]
[Display(Name = "Course Name")]
public string CourseName { get; set; }
[Required]
[Display(Name = "Credit Points")]
public string CreditPoints { set; get; }
}
My Problem
我无法从两个表中检索数据(即程序和课程) . 我想编写方法“GetAllCoursesForProgram”,它显示特定程序的课程 . 因为我无法从Course类或Program类导航到“ProgramCourse”类 . 因为外键包含在简单的int中,并且整个数据模型中没有包含导航属性 . 如果我包含导航属性,我将有问题来操纵这些对象并从jTable对服务器进行基于AJAX的调用 .
任何人都可以建议我解决方案?如何形成查询以从多个表中检索数据?我非常感激 . 提前谢谢了 .
关心乌斯曼
1 回答
如果您使用Code First进行多对多关系,请不要自己创建JITTTION TABLE! Code First将为您完成,您将获得导航属性,解决您的问题 .
它将解决您的问题,而不是操纵这些对象的问题.....
首先更改模型,生成数据库,查看Code First如何创建第3个“联结”表,然后查看如何在代码中使用它 . 如果没有帮助,请告诉我 .