(7)私は、次のエンティティがありますEntity Frameworkクエリは、子プロパティを別の変数にロードしています。どうして? Entity Frameworkのコアを用いた
public class Person {
public Int32 Id { get; set; }
public virtual Address Address { get; set; }
}
public class Address {
public Int32 PersonId { get; set; }
public String City { get; set; }
}
をそれから私は、2行目にブレークポイントでは、次のクエリを実行しました。
List<Context.Person> a = context.Persons.ToList();
List<Context.Person> b = context.Persons.Include(x => x.Address).ToList();
私は、変数をチェックする「」各リスト項目内のアドレスは、私が最初のクエリでアドレスを含めておりませんので、理にかなっているnullです。
次に、2番目のクエリを実行することができます。「b」リスト項目のアドレスには、nullとは異なるアドレスが含まれていることがわかります。
"b"を実行した後、 "a"項目のアドレスが読み込まれるということは奇妙です。
なぜですか?これを避けることはできますか?
私はいくつかのテストを作成していますが、これは避けたい動作です。
問題は、住所が含まとして、あなたのコンテキストが大きくなっているあるので、a.Addressプロパティは、同様に満たされています。別のコンテキストでアドレスを追加してみてください - 遅延ロードを無効にすると、おそらく役に立ちます – DevilSuichiro
遅延読み込みはEntity Frameworkコアには存在しません... 2つのコンテキストを使用せずにこれを解決する他の方法はありますか?私のリストには8つのレコードしかなく、それぞれ1つのアドレスしかありません。私はこれをやっていることが奇妙だと分かっています... –