Используя Entity Framework, как я могу получить коллекцию из таблицы? - PullRequest
0 голосов
/ 09 апреля 2011

Вот таблицы:

enter image description here

Мне нужно получить коллекцию объектов Student, чтобы я мог получить доступ к их именам, фамилиям и т. Д.

Я застрял, поэтому любая помощь очень приветствуется, я всегда стараюсь учиться и применять новые вещи, чтобы заставить их придерживаться. :)

Пока что я пробовал это:

private void cmbGradeParalelo_SelectedIndexChanged(object sender, EventArgs e)
{
    int gradeParaleloId = Convert.ToInt32(cmbGradeParalelo.SelectedValue);

    using (StudentRepository studentRepo = new StudentRepository())
    {
        studentRepo.FindAllStudents().Where(s => s.GradeStudents
    }
}

.GradeStudents - это EntityCollection<GradeStudent>, поэтому я думаю Я могу запросить данные с помощью Linq, но я не знаю как. Я никогда не делал что-то подобное. :)

Спасибо за ваше время!

Ответы [ 3 ]

1 голос
/ 13 апреля 2011

Вам может пригодиться один из этих руководств, в зависимости от того, используете ли вы MVC или веб-формы

MVC / Код сначала http://www.asp.net/entity-framework/tutorials/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application

Веб-формы / База данных сначала http://www.asp.net/entity-framework/tutorials/the-entity-framework-and-aspnet-–-getting-started-part-4

1 голос
/ 09 апреля 2011

Да, вы можете запросить с Linq.Однако есть одно предостережение для новичка: необходимость включать:

Context.Students
       .Include("GradeStudents")
       .Include("GradeStudents.GradeParalelo")
       .First<Student>(s => s.StudentId == 1)
       .GradeStudents

и т. Д.

Если вы предоставите немного больше информации о том, что вы пытаетесь сделать, я мог быдополнительная справка.

Обратите также внимание, что если в вашей соединительной таблице (GradeStudents) нет дополнительных столбцов, это будет ассоциация, и вы получите доступ к GradeParalelo непосредственно из Student.

0 голосов
/ 09 апреля 2011

если вы хотите, чтобы у всех учеников был хотя бы один класс GradeParalelo, это сработало бы

studentRepo.FindAllStudents()
    .Where(s => s.GradeStudents.Any(gs => gs.GradeParaleloId == gradeParaleloId));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...