Я пытаюсь ограничить элементы, выбранные в серии навигационных цепей. Вот примерно последовательность: Order -> Preference (s) -> PreferenceCard -> Item (s) -> OrderItemEntity Framework 3 - Элементы фильтра в цепочке Навигационные свойства
Примечания:
- Заказ может иметь несколько предпочтений.
- Предпочтение есть 1 карточка предпочтения.
- Карта предпочтений состоит из предметов.
- OrderItem содержит информацию об этом товаре, относящемся к заказу.
Как ограничить выбор OrderItems только теми, которые связаны с моим заказом? Мой Include("Preference.PreferenceCard.Item.OrderItem")
просто захватывает все OrderItems, даже если они не соответствуют заказу.
Я попробовал положение Where()
, но это, кажется, не делать ничего:
.Where(
o => o.Preference.Any(
p => p.PreferenceCard.Items.Any(
item => item.OrderItem.Any(
orderItem => orderItem.OrderId == o.OrderId))))
Как правильно фильтровать OrderItems по OrderId даже Каскадный навигационных свойства?
Эти данные будут обрабатываться, и я не хочу фильтровать объект в памяти по соображениям производительности. Невозможно ли фильтровать захваченные элементы? – strongriley
@strongriley - Я не предлагаю вам фильтровать элементы в памяти. С EntityFramework фильтрация вашего свойства навигации Entities аналогична удалению этих элементов. Как вы собираетесь манипулировать данными, если у Entity есть только часть его навигационного свойства? – Aducci
Спасибо за руководство - я закончил тем, что захватил OrderItems прямо после заказа, а затем повторил, присоединив их обратно к PreferenceCard/Items. – strongriley