Удаление записей возвращается из мертвых после отправки изменений с использованием RIA Data Services - PullRequest
2 голосов
/ 21 августа 2009

Я написал небольшую программу, которая удаляет запись из базы данных, используя службы данных 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 ]

1 голос
/ 21 августа 2009

Согласно этому сообщению на форуме, это может быть ошибка в RIA Услуги.

Спасибо, тех. В свете этого мне удалось найти обходной путь, который не требовал обновления страницы. После того, как я отправляю изменения, я обновляю сетку, пересылая ее, мой личный объект и зомби исчезли.

theDataGrid.ItemsSource = null;
   theDataGrid.ItemsSource = _PersonService.persons;
1 голос
/ 21 августа 2009

Согласно этому сообщению на форуме, это может быть ошибкой в ​​RIA Services.

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

Полагаю, вы могли бы просто обновить страницу в качестве обходного пути?

0 голосов
/ 15 января 2011

удалить элементы вроде этого: DomainDataSource.DataView.Remove (item) вместо удаления из DomainContext

...