2009-08-21 61 views
2

我已經寫了一個小程序,從使用RIA數據服務(Silverlight的)數據庫中刪除記錄,我使用一個DataGrid來查看我的實體提交的變化。刪除從死的紀錄返回後,我用RIA數據服務

private void DeleteButton_Click(object sender, RoutedEventArgs e) 
{ 
    DataContext _PersonService = 
      (DataContext)(personDataSource.DomainContext); 

    person removeThisPerson = (person)(dataGrid.SelectedItem); 

    // This removes it from the grid/entity 
    _PersonService.persons.Remove(removeThisPerson); 

    // This removes it from the database. 
    // After this it shows back up in the grid :(
    personDataSource.SubmitChanges(); 
} 

當我運行SubmitChanges()時,記錄將從網格中刪除,然後再次出現在網格上。它返回到「EntityState = New」的網格。

當我查詢數據庫時,記錄不見了。那麼,爲什麼實體不刪除記錄?

殭屍從哪裏來?

回答

1

根據這個論壇的帖子,這 實際上可能是在RIA 服務的錯誤。

感謝TEHP。鑑於此,我能夠找到一種解決方法,不需要刷新頁面。提交修改後,我通過修復它來刷新網格,我的人物和殭屍都消失了。

theDataGrid.ItemsSource = null; 
    theDataGrid.ItemsSource = _PersonService.persons; 
0

刪除這樣的項目:DomainDataSource.DataView.Remove(項目),而不是從DomainContext

去除
+1

我們沒有使用DDS。這只是一個使用mvvm與上下文交談的直接數據表單。 – johnnywhoop 2011-01-28 14:36:48