一連のナビゲーションチェーンで選択された要素を制限しようとしています。ここではシーケンスはおおよそです: 注文 - >プリファレンス(S) - > PreferenceCard - >項目(複数可) - > OrderItemのエンティティフレームワーク3 - チェーンされたナビゲーションプロパティの要素のフィルタ
注:
- ためには、複数の嗜好を持つことができます。
- 優先度は1優先度カードです。
- 設定カードはアイテムで構成されています。
- OrderItemには、注文に固有のそのアイテムに関する詳細が含まれています。
OrderItemsの選択を、注文にリンクされているもののみに制限するにはどうすればよいですか?私のInclude("Preference.PreferenceCard.Item.OrderItem")
はOrderに対応していなくても、すべてのOrderItemを取得します。
私はWhere()
句を試してみたが、何もしていないようだ。
.Where(
o => o.Preference.Any(
p => p.PreferenceCard.Items.Any(
item => item.OrderItem.Any(
orderItem => orderItem.OrderId == o.OrderId))))
どのようにしても適切なナビゲーションプロパティを使用してチェーンOrderIdででのOrderItemsをフィルタリングすることができますか?
このデータは操作されるため、パフォーマンス上の理由からメモリ内のオブジェクトをフィルタ処理したくありません。要素をフィルタリングする方法はありませんか? – strongriley
@strongriley - 私はあなたがメモリ内の要素をフィルタリングすることを示唆していません。 EntityFrameworkでは、エンティティナビゲーションプロパティをフィルタリングすることは、それらの項目を削除することと同じです。エンティティがNavigationalプロパティのほんの一部しか持たない場合、どのようにデータを操作しますか? – Aducci
ガイダンスをありがとう - OrderItemsをOrderから直接取り出し、繰り返してPreferenceCard/Itemsに戻していきました。 – strongriley