gpt4 book ai didi

c# - 为什么此 AsParallel 操作会抛出数据提供程序错误?

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:17 28 4
gpt4 key购买 nike

感谢观看。我有以下返回语句:

            //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() 与 Entity Framework 一起使用时,这个问题已经被很好地记录下来。

问题

因为我在 AsEnumerable() 之前调用了 ToList(),所以我的集合不应该是线程安全的,因为它现在是内存中的集合吗?

最佳答案

问题是我调用的构造函数中的一些属性是延迟加载的,所以我需要在调用 AsParallel() 之前预先加载它们,并且构造函数使用例如 .Include(i => i.Image).

有趣的是,即使不使用 AsParallel(),我的查询在预加载相关实体的情况下要快得多。

关于c# - 为什么此 AsParallel 操作会抛出数据提供程序错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33716024/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com