我有两个表,学生(姓名,身份证,大学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 ???
答案 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; }
}