【问题标题】:How to force a WCF data service to refresh entities?如何强制 WCF 数据服务刷新实体?
【发布时间】:2016-01-18 00:48:01
【问题描述】:

我正在使用 WCF 数据服务来访问 MSSQL 数据库。如果客户端请求数据(例如从“项目”表中),我会像这样构建我的缓存:

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

return collection;

如果我想刷新列表,我只需调用

collection.Clear();

并再次调用上述方法。如果我编辑一个项目并按上述方式刷新列表,它可以正常工作,但如果我更改一个客户端实例上的数据并刷新另一个客户端实例上的列表,则服务不会加载更改后的项目。

即使从服务的角度来看没有任何变化,我如何强制 DataService 重新加载整个实体(例如“项目”)?

【问题讨论】:

    标签: sql-server wcf service refresh entities


    【解决方案1】:

    可能的解决方案:

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

    用法:

    entities.RefreshProject(project);

    【讨论】:

    • 我已经完成了这个项目,我通过其他方式解决了这个问题。不过,这可能是解决问题的有效方法,所以我会接受您的回答。
    猜你喜欢
    • 2011-05-07
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多