Entity framework 4 EntityFramework对象上下文刷新问题

Entity framework 4 EntityFramework对象上下文刷新问题,entity-framework-4,observablecollection,Entity Framework 4,Observablecollection,我有DataContext。刷新方法: public void RefreshDataSource() { _entities.Refresh(RefreshMode.ClientWins,Departments); } 和可观察的集合: public ObservableCollection<Department> Departments { get { if (_depart

我有DataContext。刷新方法:

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

如果我在上下文之外更新记录,我只能看到已更改的记录,但看不到已插入和已删除的记录。为什么?

因为刷新不会查找新记录。它会获取您已有的记录并用当前值更新它们。它也可能不会处理已删除的记录,特别是如果您使用ClientWins策略,它将您的状态视为更重要的状态。

谢谢您的回复。但如何处理插入和删除的记录?可能是存在标准机制?如果要处理插入和删除的记录,必须执行用于再次获取部门的查询,并将查询/对象集配置为使用MergeOption.OverwriteChanges等效于StoreWins或MergeOption.PreserveChanges等效于ClientWins。