RIA サービスで Silverlight 4 を使用していますが、次のような問題があります。
親エンティティがあり、MyParent と呼び、子エンティティを MyChild と呼びます。親エンティティのメタデータ クラスは次のとおりです。
internal sealed class MyParentMetadata
{
[Include]
[Composition]
public EntityCollection<MyChild> Childs { get; set; }
(...)
マスター エンティティにクエリを実行するときは、子エンティティを含めます。
public IQueryable<MyParent> GetParentByID(int id)
{
return this.ObjectContext.MyParent.Include("Childs").Where(x => x.ID == id);
}
クライアント側では、次のコードを使用してリクエストを行います。
context.Load<MyParent> (context.GetParentByID(id), LoadBehavior.RefreshCurrent,
lo => {
var return = lo.Entities;
});
初めてリクエストを行うと、うまく機能します。親オブジェクト 1 のリクエストを行い、次の結果が得られたとします。
=> Parent 1
=> Child 1.1
=> Child 1.2
しかし、別のオブジェクトに対して 2 番目の要求を行うと、最初のオブジェクトの子が 2 番目の結果にマージされたように見えます。私はこれを得る:
=> Parent 2
=> Child 1.1
=> Child 2.1
=> Child 1.2
=> Child 2.2
「Parent 2」オブジェクトが独自の子のみを持つようにするにはどうすればよいですか? LoadBehavior.RefreshCurrent パラメーターは、親オブジェクトに対してのみ機能しているようですが、子オブジェクトに対しては機能していないようです。