2017-02-26 9 views
0

Entity Frameworkを初めて使用しました。私はコードの最初のオプションを使用しています。私は基本的なモデルを持っています。データベースは正しく作成され、レコードは正しく保存されますが、モデルの後に定義されたテストメソッドを実行すると、ヘッダーレコードは正常に読み込まれますが、ナビゲーションプロパティのDetailsはリロードされません。私は間違って何をしていますか?Entity Frameworkナビゲーションのプロパティが読み込まれない

​​
+0

** DetailId **プライマリキーはありますか?はいの場合はそれはアイデンティティですか? –

+0

はい、コードでは、自動的にIDとして定義されたPKです。 – Jesse

答えて

1

ここでエンティティフレームワークはLazy-Loadingを使用します。詳細を取得するには、Eager-Loadingを使用する必要があります。Eager-Loadingを達成するためにSystem.Data.Entity名前空間にIncludeメソッドを使用する必要があります。次のようにクエリを変更します。

 var hdr = (
       from header in ctx.Headers 
       where header.Name == NAME 
       select header).Include(h=>h.Details).FirstOrDefault(); 
+0

私の実際のケースでは、私は怠惰な読み込みを使用したいです。私がそれを参照するときに詳細レコードを読み込まないでください? – Jesse

+0

遅延ロードは、要求した内容のみを読み込みます。明示的にDetail(Includeを使用して)を要求する必要がある場合は、ヘッダーを要求し、ヘッダーを取得します。 – master2080

+0

ロードしない場合の遅延読み込みのポイントは何ですか? – Jesse

関連する問題