2015-08-14 3 views
3

У меня есть две таблицы: Student (имя, идентификатор, университетID) и университеты (Id, Name). У каждого есть информация о деталях студента, а другая - о университетах. В первой таблице я храню Student.UniversityID, который соответствует Universities.ID. Университеты показаны в виде раскрытия формы о деталях студента.IEnumerable <SelectListItem> в C# mvc

Мой вопрос в том, когда я редактирую конкретного студента, как выбрать 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; 
} 

Я думаю, что лучше всего сделать, это соединение между двумя таблицами на основе

{выберите UniversityName из университетов Присоединиться к студенту, где Student.UniversityID = Universities.ID}

Любая идея, как это сделать, объединяет эти две таблицы в Linq и выбирает имя университета, которое соответствует этому contiditi on, используя IEnumerable SelectListItem ???

ответ

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; } 
} 
Смежные вопросы