Краткий ответ: ВЫБЕРИТЕ и сопоставьте значения Id.Или программно -
foreach(Student s in yourstudentList)
{
foreach(StudentToCourse stc in s.StudentToCourse)
{
if(stc.StudentId = s.Id)
//this is one you want, do something with it
}
}
Лучший ответ:
Сначала давайте посмотрим на вашу модель ...
Представьте базовую структуру базы данных.
Ваша серединаТаблица называется поиском.
Вам не нужен ни весь Студент, ни весь объект Курса в нем.Кроме того, вашему объекту курса не нужно знать ни об одном из других объектов.
Если вы можете представить три таблицы в своей базе данных, вы сможете увидеть, как вы будете логически подключать студента к курсу через три таблицы.
Ваша модель все еще неполная.Внутри вашего приложения вам все еще нужен контейнер, в данном случае - List Course ID.Таким образом, вашему ученику не нужно заботиться обо всех записях в справочной таблице ученика / курса, только те, которые применимы к конкретному ученику.И у вас есть легкодоступный объект для извлечения данных или отправки обновлений в базу данных.
При первоначальном заполнении коллекции courseIds вы должны сделать
SELECT FROM StudentToCourse where StudentId = x
Затем вы можете ПРИСОЕДИНИТЬСЯв вашей таблице курсов, чтобы получить такие значения, как название курса.Если вы обнаружите, что вам нужно выполнить множество таких поисков, вы можете кэшировать свой список курсов и снизить трафик базы данных за счет некоторой оперативной памяти.
Каждый раз, когда вы создаете нового студента, вы хотите заполнить его список идентификаторов курсов, а при фиксации студента в базе данных вы сохраняете свою справочную таблицу.
Это сохраняет ваши объекты каккак можно легче, поддерживая их отношения.
Существуют различные способы написать инструкцию SELECT в вашей среде разработки, найти их и найти тот, который вам нравится (или соответствует текущим практикам вашей компании) и привыкнуть к последовательномуиспользуя тот же.Это сделает ваш код более читабельным и управляемым.