1

我正在使用SL4 & .Net Ria服務。我的數據模型有一個名爲DeviceAndStates的屬性爲0 .. *的設備,通過這個<riacontrol/>我得到了一個特定類型的所有設備和他的DevicesAndStates。LoadedData在Ria服務中積累了相關對象的結果

<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

您可以通過LoadOperation的AllEntities成員獲取新加載的引用實體。使用一些LINQ,您可以將其過濾爲只與涉及頂級設備相關的實體。