首页 文章

如何使用LINQ To SQL的Code First方法检索多对多关系的记录?

提问于
浏览
0

我正在使用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 回答

  • 0

    如果您使用Code First进行多对多关系,请不要自己创建JITTTION TABLE! Code First将为您完成,您将获得导航属性,解决您的问题 .

    它将解决您的问题,而不是操纵这些对象的问题.....

    首先更改模型,生成数据库,查看Code First如何创建第3个“联结”表,然后查看如何在代码中使用它 . 如果没有帮助,请告诉我 .

相关问题