3

我有两个表,学生(姓名,身份证,大学 ID)和大学(身份证,姓名)。一个包含有关学生详细信息的信息,另一个包含有关大学的信息。在第一个表中,我存储与Student.UniversityID匹配的Universities.ID。大学在有关学生详细信息的表格中显示为下拉列表。

我的问题是,当我编辑特定学生时,如何在之前的表格中选择大学名称,同时添加预先选择的学生详细信息。

到目前为止我所做的是我正在像这样填充下拉列表

public ActionResult Edit(int? id)
{
    IEnumerable<SelectListItem> items = db.Universities
        .Select(c => new SelectListItem
        {
            Value = c.UniversityId.ToString(),
            Text = c.UniversityName.ToString(),
            Selected = true,
        });
    ViewBag.UniversityID = items;
}

我想最好的办法是基于

{select UniversityName from Universities Join Student where Student.UniversityID=Universities.ID }

知道如何在 Linq 中加入这两个表并使用 IEnumerable SelectListItem 选择适合此条件的 UniversityName 吗?

4

1 回答 1

0

如果您使用的是 EntityFramework,您可以指定 ForeignKey 约束,在这种情况下您可以这样做:

db.Students.Select(student => new {
    UniversityName = student.University.UniversityName
})

要添加 ForeignKey 约束,请在您的 EntityFramework 数据实体中执行以下操作:

[Table("Student")]
public class Student
{
    [Key] public int Id { get; set; }
    public string Name { get; set; }
    public int UniversityId { get; set; }

    [ForeignKey("UniversityId")] public University University { get; set; }
}
于 2015-08-14T09:19:17.220 回答