我正在使用SL4&amp; .Net Ria服务。我的数据模型具有名为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(查询的特定类型以及之前查询中获得的所有先前类型)。因此,Device的DeviceAndState的Listbox会将查询结果累加到下一个。
答案 0 :(得分:0)
您可以通过LoadOperation的AllEntities成员获取新加载的引用实体。使用某些LINQ,您可以将其过滤到仅与相关顶级设备相关的实体。