【问题标题】:Deleting a record returns from the dead after I submit changes using RIA Data Services使用 RIA 数据服务提交更改后删除记录死而复生
【发布时间】:2009-08-21 15:52:03
【问题描述】:

我编写了一个小程序,它使用 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”返回到网格。

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

僵尸是从哪里来的?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 我们没有使用 DDS。它只是一个使用 mvvm 与上下文对话的直接 Dataform。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多