2012-02-08 2 views
0

У меня есть DataContext.Refresh Метод:EntityFramework ObjectContext Обновить вопрос

public void RefreshDataSource() 
    { 
     _entities.Refresh(RefreshMode.ClientWins,Departments); 
    } 

И наблюдаемая коллекция:

public ObservableCollection<Department> Departments 
    { 
     get 
     { 
      if (_departments == null && _entities != null) 
      { 
       _entities.Departments.Include("Drivers").ToArray(); 
       _departments = new EntityObservableCollection<Department>(_entities.Departments); 
      } 
      return _departments; 
     } 
    } 

Если я обновить записи вне контекст я вижу только измененные записи, но не может видеть и вставить удален. Зачем?

ответ

0

Потому что Refresh не ищет новые записи. Он принимает записи, которые у вас уже есть, и обновляет их с текущими значениями. Он также, вероятно, не обрабатывает удаленные записи, особенно если вы используете стратегию ClientWins, которая делает ваше состояние более важным.

+0

Благодарим за сообщение. Но как я могу обрабатывать вставленные и удаленные записи? Может быть, это стандартный механизм? – Alex

+0

Если вы хотите обрабатывать вставленные и удаленные записи, вы должны выполнить запрос, используемый для повторного получения отделов, и настроить набор запросов/объектов для использования 'MergeOption.OverwriteChanges' (эквивалент' StoreWins') или 'MergeOption.PreserveChanges' (эквивалент' ClientWins'). –

Смежные вопросы