2013-09-06 5 views
0

У меня есть набор объектов, который является сеансом для опроса. Существует свойство навигации для коллекции ответов, которые также привязаны к объекту «Вопрос» (с использованием отношения внешнего ключа в БД).Связаны ли связанные с Linq сущностные коллекции?

Это легко для меня, чтобы вызвать сбор ответов просто делать

session.Responses 

Это возвращает пронумерованный список, который в большинстве случаев это хорошо.

Однако для больших наборов данных я сталкиваюсь с концептуальной проблемой.

Если я хочу выбрать конкретный ответ из собрания ответов сеанса на основе элемента, учитывая, что это коллекция, это будет операция поиска или сканирования? Связаны ли отношения FK между Response и Question?

Если нет, то было бы разумно создать словарь с ключевыми словами в сеансе. Частичный класс, который берет на себя коллекцию ответов и объединяет ее с ключами вопросов? Таким образом, было бы прямым стремлением дать точный ответ на каждый запрошенный вопрос.

ответ

0

LINQ over objects использует Enumerators, который «сканирует» по коллекции.

РЕДАКТИРОВАТЬ: Лучше всего сделать как можно больше логического соединения и фильтрации в базе данных. Когда вы загружаете словарь с результатами выражения запроса EF, запрос будет выполняться в базе данных и результаты, помещенные в память. В настоящий момент вы больше не имеете дело с выражением IQueryable, а с IEnumerable набором объектов. Дальнейшие выражения LINQ в словаре - это LINQ над объектами.