2

我编写了一个小程序,它使用 RIA 数据服务 (Silverlight) 从数据库中删除记录,并且我正在使用数据网格来查看我的实体。

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”返回到网格。

当我查询数据库时,记录消失了。那么,为什么实体不删除记录?

丧尸从何而来?

4

3 回答 3

1

根据这个论坛帖子,这实际上可能是 RIA 服务中的一个错误。

http://betaforums.silverlight.net/forums/t/112232.aspx

我想您可能只是刷新页面作为解决方法?

于 2009-08-21T17:23:45.777 回答
1

根据这个论坛帖子,这实际上可能是 RIA 服务中的一个错误。

谢谢 tehp。鉴于此,我能够找到不涉及刷新页面的解决方法。提交更改后,我通过重新传递我的人员对象来刷新网格,并且僵尸消失了。

theDataGrid.ItemsSource = null;
   theDataGrid.ItemsSource = _PersonService.persons;
于 2009-08-21T18:28:53.680 回答
0

删除这样的项目:DomainDataSource.DataView.Remove(item),而不是从 DomainContext 中删除

于 2011-01-15T11:54:40.420 回答