Как "группировать" разрешение свойства для списка объектов?
У меня есть список некоторых объектов, которые я заполняю из результата запроса к базе данных.
List<Competition> myList; // fetched from DB
Если мне нужно получить доступ к свойству одного / нескольких объектов в этом списке, что требует повторного запроса к базе данных следующим образом:
List<Person> compPersons = myList[0].Persons; // persons must be fetched in DB
то есть ли способ иметь только один вызов БД, который бы заполнил Persons
собственность для каждого Competition
в myList
?
List<Person> comp1Persons = myList[0].Persons; // Causes one big DB fetch
List<Person> comp2Persons = myList[1].Persons; // no more fetch required
List<Person> comp3Persons = myList[2].Persons; // no more fetch required
Если в моем списке 1000 соревнований, я не хочу 1000 запросов, когда я перебираю список и получаю доступ к свойству Persons.
РЕДАКТИРОВАТЬ: я не возражаю против использования IEnumerable вместо List, если это позволяет больше возможностей.