コレクションのEFコアコレクションロード

c# entity-framework-core navigation-properties

質問

EFコア1.1.0の使用

コレクションを持つコレクションを持つモデルがあります。

public class A {  
  public string Ay {get;set;}    
  public List<B> Bees {get;set;}
}

public class B {
  public string Be {get;set;}
  public List<C> Seas {get;set;}
}

public class C {
  public string See {get;set;}
  public bool InDark {get;set;}
  public List<D> Sigh {get;set;}
}

今は.. Aは巨大で、99%はBについて気にしないので、ロードされません。私がそれをロードした場合、それは次のようなものになります:

context.A.Include(a=>a.Bees).ThenInclude(b=>b.Seas).ThenInclude(c=>c.Sigh)...

さて私はすでにAがロードされており、1%は私がBを気にしているとしましょう。私たちはまだ遅延ロードを持っていませんが、最後のリリースでは明示的なロードができました。驚くばかり。

context.Entry(A).Collection(a=>a.Bees).Load();

問題は、B内に追加のコレクションを含める方法がないということですか?私は選択肢がありますが、Aと一緒にAをリロードすることはできますか?その結果を含む。

受け入れられた回答

幸いにもあなたにはオプションがあります。 Loadを直接呼び出す代わりに、 Queryメソッドを使用して、必要な数のInclude / ThenIncludeを適用することができます。

あなたのサンプルについては、次のようなものになります。

context.Entry(A).Collection(a => a.Bees)
    .Query()
    .Include(b => b.Seas).ThenInclude(c => c.Sigh)...
    .Load();


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ