我将 Silverlight 4 与 RIA 服务一起使用,但遇到以下问题:
我有一个父实体,叫 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
但是当我对不同的对象提出第二次请求时,第一个对象的子对象似乎被合并到第二个结果中。我明白了:
=> Parent 2
=> Child 1.1
=> Child 2.1
=> Child 1.2
=> Child 2.2
我如何确保“父 2”对象只有自己的子对象?LoadBehavior.RefreshCurrent 参数似乎仅适用于父对象,但不适用于子对象。