C#mvc中的IEnumerable <selectlistitem>

时间:2015-08-14 09:14:40

标签: c# linq ienumerable selectlistitem

我有两个表,学生(姓名,身份证,大学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 Student Student.UniversityID = Universities.ID}

任何想法如何在Linq中连接这两个表并选择适合此contidition的UniversityName,使用IEnumerable SelectListItem ???

1 个答案:

答案 0 :(得分: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; }
}