感谢您的光临。我有以下返回声明:
//Return the result set
return new FilterDto.FilterResult<Application>
{
Count = count,
Results = _results.ToList().AsParallel().Select(s => ConstructApplication(s))
};
其中调用以下方法:
public Application ConstructApplication(Application application)
{
var result = new Application
{
Id = application.Id,
Title = application.Title,
Icon = application.Icon
. . .
};
return result;
}
AsParallel()
调用引发“底层提供程序无法打开”错误;与实体框架一起使用AsParallel()
时,已经很好地记录了该问题。题
由于我在
ToList()
之前调用AsEnumerable()
,因此我的集合现在是内存中的集合,难道不是线程安全的吗? 最佳答案
问题是我调用的构造函数中的某些属性是延迟加载的,因此在调用AsParallel()
和使用例如.Include(i => i.Image)
的构造函数之前,我需要急于加载它们。
有趣的是,即使不使用AsParallel()
,我的查询也可以更快地加载相关的实体,从而大大提高了查询速度。
关于c# - 为什么此AsParallel操作会引发数据提供程序错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33716024/