使用RIA Data Services提交更改后,删除记录将从死亡中返回

时间:2009-08-21 15:52:04

标签: silverlight entity-framework wcf-ria-services

我编写了一个小程序,使用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”。

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

僵尸来自哪里?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

  

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

谢谢你。鉴于此,我能够找到一个不涉及刷新页面的工作。在我提交更改后,我通过修复它来刷新网格,我的人物对象和僵尸都消失了。

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

答案 2 :(得分:0)

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