gpt4 book ai didi

silverlight - Ria 服务查询中包含的对象与以前的请求合并

转载 作者:行者123 更新时间:2023-12-02 04:59:59 27 4
gpt4 key购买 nike

我将 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

如何确保“Parent 2”对象只有自己的 child ? LoadBehavior.RefreshCurrent 参数似乎只对父对象有效,对子对象无效。

最佳答案

我以前从来不需要 LoadBehavior.RefreshCurrent。你是对的,它似乎不适用于包含的实体。

如果我是你,我更喜欢这种方式

  • 加载前清除上下文对象

  • 获取一个新的上下文实例(我知道它看起来不太好但解决了问题,我们需要这种大多数情况来加载相同类型的实体但用于不同的目的)。

关于silverlight - Ria 服务查询中包含的对象与以前的请求合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350390/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com