2012-02-08 34 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不尋找新記錄。它會記錄您已有的記錄並使用當前值更新它們。它也可能不處理已刪除的記錄,特別是如果您使用的策略將您的狀態視爲更重要。

+0

謝謝你的回覆。但我如何處理插入和刪除的記錄?也許它是目前的標準機制? – Alex 2012-02-09 06:07:00

+0

如果要處理插入和刪除的記錄,則必須再次執行用於獲取部門的查詢,並將查詢/對象設置爲使用「MergeOption.OverwriteChanges」(等同於「StoreWins」)或「MergeOption.PreserveChanges」(等同於「 ClientWins')。 – 2012-02-09 09:33:47