2012-03-16 37 views
2

我正在使用WCF數據服務來訪問MSSQL數據庫。如果客戶端請求數據(例如,從表中「項目」),我建我的緩存是這樣的:如何強制WCF數據服務刷新實體?

var collection = new ObservableCollection<Project>(); 
foreach (var project in this.Entities.Project) 
{ 
    collection.Add(project); 
} 

return collection; 

如果我想刷新列表我就叫

collection.Clear(); 

,並調用上面的方法再次。如果我編輯一個項目並刷新列表,如上所述它工作正常,但如果我更改一個客戶端實例上的數據並刷新另一個列表上的服務不會加載更改的項目。

即使從服務的角度來看什麼都沒有改變,我該如何強制DataService重新加載整個實體(例如「Projects」)?

回答

0

可能的解決方案:

public partial class Entities 
{ 
    public void RefreshProject(Project pr) 
    { 
     this.Detach(pr); 
     pr = this.Project.Where(p => p.Id == pr.Id).Single(); 
    } 
} 

用法:

entities.RefreshProject(項目);

+0

我完成了這個項目,我用其他方式解決了這個問題。不過,這可能是解決問題的有效方法,所以我會接受你的答案。 – BoltzmannBrain 2012-06-30 13:43:59