質問

ナビゲーションプロパティを公開するエンティティ(連絡先)にバインドされた要素があります。

アクション(つまり、「子のロード」ボタン)で、実行前にObjectQuery.Includeで実行できるように、Contactがそのすべての子と孫のためにロードする必要があります。例(疑似):

DirectCast(element.DataContext, Contact).SubContacts. _
   Include("Address.State"). _
   Load()

モデル自体にクエリを実行するときだけでなく、上記の例のようにアイテムをリロードすることでも結果を整形できるようにしたい。

これは何らかの形でEntity-Frameworkの一部であるべきだと思います。

役に立ちましたか?

解決

質問に答える前向きではありませんが、確認してください:

すでに読み込んだエンティティを取得し、そのプロパティのパスを含める ナビゲーションプロパティを読み込みます。最初のオブジェクトのロードに使用したのと同じコンテキストを使用している限り、これは実際にはそれほど難しくありません。

重要な点は、エンティティを返すクエリを実行するたびに、Entity Frameworkが既存の関連オブジェクトのいずれかと自動的にリンクすることです。したがって、本当に必要なのは、いくつかのインクルードを含む追加データを返す新しいクエリを作成することです。

Entity Frameworkのすべての参照には、 CreateSourceQuery というメソッドがあります。オブジェクトクエリを返すため、これを使用してこれを行うことができます(申し訳ありませんが、C#):

AlreadyLoadedContact.SubContacts.CreateSourceQuery().Include("Address.State").ToList();

ToList呼び出しはクエリを実行し、Entity Frameworkはすべての結果を取得し、それらをSubContacts EntityCollectionに自動的に追加します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top