2016-08-03 8 views
0

のフィルタサブコレクションは、私は、すべてのデータが私のレポで他の方法のために、利用可能、かつ正しいことを確認します私のリポジトリ内のベースレベルGetAll()方法を構築しようとしています。を含めるとEF

既存のDB設計のためかなり複雑ですが、groupまたはdriverが現在の資格情報で表示されるかどうかを指定するコレクションを中心にしています。

残念ながら、その瞬間にエラーを投げる:

ザ・パス式はタイプここ

に定義されたナビゲーションプロパティを参照する必要がありますが含まれているコード

return groups 
    .Include(g => g.GroupDriverDicts) 
    .Include(g => g.GroupDriverDicts.Select(d => d.Driver)) 
    .Include(g => g.GroupDriverDicts 
        .Select(d => d.Driver 
           .DriverCredentialDicts 
           .Select(dcd => dcd.CredentialId == this.AccountId))) 

答えて

0

をこのように、含まれているデータをフィルタリングすることはできません。 DriverCredentialDictsをすべて読み込む必要があります。

return groups 
    .Include(g => g.GroupDriverDicts.Select(d => d.Driver.DriverCredentialDicts)) 
    .Where(g => g.GroupDriverDicts.Any(gdd => gdd.Driver.DriverCredentialDicts 
      .Any(dcd => dcd.CredentialId == this.AccountId))); 

それはDriverCredentialDictsのいずれかがthis.AccountIdに等しいIDを持つ、すべてグループあなたを与える:あなたのような何かを試すことができます。

関連する問題