Deleting a record comes back from dead after submitting changes using RIA Data Services

I wrote a small program that deletes a record from a database using RIA Data Service (Silverlight) and I am using a datagrid to view my object.

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();
}

      

When I run SubmitChanges (), the entry is removed from the grid and then reappears in the grid. It goes back to the grid with "EntityState = New".

When I query the database, the entry disappears. So why isn't the object deleting the entry?

Where do zombies come from?

+2


source to share


3 answers


According to this forum post, this may actually be a bug in RIA Services.

Thanks tehp. In light of this, I was able to find work that did not include page refresh. After I submit the changes, I update the mesh, overloading it with my object and the zombies are gone.



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

      

+1


source


According to the post from this forum, this may actually be a bug in the RIA services.

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



I suppose you could just refresh the page as a workaround?

+1


source


remove items like DomainDataSource.DataView.Remove (item) instead of removing from DomainContext

0


source







All Articles