私はN×N個のテーブルを持っている、と想像どこ:LINQを含める+メソッド
ユーザー(ID、...)< - UserAddresses(IDは、ユーザーID、あるAddressId、有効、...) - >アドレス(IDを、...)
UserAddressesには、FKのユーザーとアドレスが含まれています。 私が知る限り、Entity Framework Userによって作成されたEntityには、UserAddressesへのコレクションが含まれています。アドレスにはUserAddressesへのコレクションが含まれており、特定のUserAddressにはUserと1つのAddressに対する1つのrefenreceが含まれています。
ここでlinqで次のクエリを作成します。 特定のユーザーIDの場合、enabledフラグがtrueに設定されたuserAddressesのみを取得します。 特定のユーザーIDの場合、userAddressesには複数のエントリを含めることができますが、この特定のユーザーに対して1つのみが設定されます。
私が行うことができますクエリは次のとおりです。
context.User.Include(x => x.UserAddresses)
.Include(x => x.UserAddresses.Select(y => y.Address))
.Single(x => x.id == USER_ID)
しかし、私が本当に欲しいのは、そのユーザーのすべてのUserAddressesをロードすることはない... TRUEにsetted有効に含まれている唯一の、!
誰かがこのクエリを実行するのを手助けできますか?
どのような 'Include'を使用していますか?私が知る限り、 'System.Data.Objects.ObjectQuery'の' Include'メソッドはstringの引数を1つだけ受け取りますか? –
@ KingKingラムダ式を文字列にフォーマットし、それを "ネイティブ" ObjectQueryインクルードメソッドに渡す拡張メソッドを実行しました。 – anotherNeo
もしそうなら、あなたの問題への答えは「不可能」、「インクルード」はそれほど強力ではないので、インクルードする前に「フィルタ」を実行することはできません。 –