我有两个表,Student (name, id, UniversityID) 和 Universities (Id, Name)。一个包含有关学生详细信息的信息,另一个包含有关大学的信息。在第一个表中,我存储了与 Universities.ID
匹配的 Student.UniversityID
。大学显示为有关学生详细信息的下拉列表。
我的问题是,当我编辑一个特定的学生时,如何在添加学生详细信息(预选)的同时在之前的表格中选择 UniversityName。
到目前为止,我正在做的是像这样填充下拉列表
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}
知道如何使用 IEnumerable SelectListItem 在 Linq 中连接这两个表并选择符合此条件的 UniversityName 吗???
最佳答案
如果您使用的是 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; }
}
关于c# - C# mvc 中的 IEnumerable<SelectListItem>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006474/