1

我正在使用 SL4 和 .Net Ria Services。我的数据模型有一个名为 DeviceAndStates 的 0..* 属性的设备,通过它<riacontrol/>我得到了所有设备和他的特定类型的 DevicesAndStates。

<riaControls:DomainDataSource Name="deviceDomainDataSource" QueryName="getDevicesWithOpenStateQuery" .../>

在客户端,两个嵌套的列表框显示了设备及其 DevicesAndStates。

 <ListBox ItemsSource="{Binding ElementName=deviceDomainDataSource, Path=Data}">
      <ListBox x:Name="SubRowListBox" ItemsSource="{Binding DevicesAndStates}">
      </ListBox>
 </ListBox

问题在于,在服务器端,查询返回具有特定类型(仅特定类型)的 DeviceAndStates 的所有设备,但在客户端不返回。在客户端这里

 private void deviceDomainDataSource_LoadedData(object sender, LoadedDataEventArgs e)
    {

        if (e.HasError)
        {
            System.Windows.MessageBox.Show(e.Error.ToString(), "Load Error", System.Windows.MessageBoxButton.OK);
            e.MarkErrorAsHandled();
        }
        else
        {

        }
    }

在 e.Entities 中,我得到了所有正确的设备,但查看他的 DeviceAndState 属性,它包含所有 devicesAndStates(查询的特定类型以及我在之前的查询中获得的所有先前类型)。因此,一个设备的 DeviceAndState 的 Listbox 将一个查询的结果累积到下一个。

4

1 回答 1

0

您可以通过 LoadOperation 的 AllEntities 成员获取新加载的引用实体。使用一些 LINQ,您可以将其过滤到仅与相关顶级设备相关的实体。

于 2010-03-11T09:18:56.393 回答