Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Cancel DataServiceCollection:此IEnumerable仅支持单个枚举_C#_Wpf_Wcf Data Services - Fatal编程技术网

C# Cancel DataServiceCollection:此IEnumerable仅支持单个枚举

C# Cancel DataServiceCollection:此IEnumerable仅支持单个枚举,c#,wpf,wcf-data-services,C#,Wpf,Wcf Data Services,关于我今天在下文中提出的上一个问题 我需要帮助编写一些代码来取消客户端上的更改,而无需重新加载数据。我所做的唯一尝试失败如下: private IEnumerable<TheEntity> _data; 我认为我可以清除数据并重新加载缓存的私有字段。不幸的是,我得到了一个错误: 此IEnumerable只支持单个枚举。我希望这一次可以解决,但以防万一,如果有人(如我)偶然发现此问题:)。真正的问题是我的代码访问IEnumerable集合中数据的方式。在您的示例(从提供的链接)中,该

关于我今天在下文中提出的上一个问题

我需要帮助编写一些代码来取消客户端上的更改,而无需重新加载数据。我所做的唯一尝试失败如下:

private IEnumerable<TheEntity> _data;
我认为我可以清除数据并重新加载缓存的私有字段。不幸的是,我得到了一个错误:


此IEnumerable只支持单个枚举。

我希望这一次可以解决,但以防万一,如果有人(如我)偶然发现此问题:)。真正的问题是我的代码访问IEnumerable集合中数据的方式。在您的示例(从提供的链接)中,该方法返回异步结果,之前您正在对其执行
.ToList

您已经更新了正确的实现,但一旦收集到,您将直接将其分配给数据源。为了解决这个问题,我首先收集了对变量的响应,然后将其转换为
。ToList
。一旦我有了本地列表,我就可以分配/遍历任意多的时间。而对于,由于linq的延迟绑定特性,一旦调用它就无法向后/向前遍历。(在
DataServiceCollection
中可能存在一些内部实现问题)


我希望这能帮助别人。

对不起,我不明白。“我首先收集了一个变量的响应,然后将其转换为.ToList”是什么意思?什么是“收集对变量的响应”?
private void DoCancel()
{
    _dataSource.Clear(true);
    _dataSource.Load(data);
}