尝试遍历Queryable时出错
本文关键字:出错 Queryable 遍历 | 更新日期: 2023-09-27 18:09:59
foreach(var name in _cust.Select(s => s.Username).Distinct())
{
var x = _cust.Select(s => s.Username == name); //ERROR HERE
//rest of the code here
}
将抛出There is already an open DataReader associated with this Command which must be closed first.
异常,但是当我添加.ToList()
时它不会发生。
- 除了添加
.ToList()
之外还有其他方法吗? - 如果我使用
.ToList()
作为解决方案,这会导致性能问题,当它进入生产?因为ToList()
会尝试加载内存中的所有内容。 - 我有很多导航属性在我的实体,将
ToList()
试图加载导航属性内的一切?
谢谢
除了添加。tolist()之外,还有其他方法吗?
我想在您的连接字符串中启用MARS可能是ToList()
的替代方案。
如果我使用。tolist()作为解决方案,当它进入生产时,这会导致性能问题吗?
这取决于数据库中不同用户名的数量
因为AFAIK ToList()将尝试加载内存中的所有内容。
它将尝试加载内存中所有不同的UserNames
我有很多导航属性在我的实体,将ToList()试图加载导航属性内的一切?
不,它将执行适当的查询并在UserName列上进行投影。
恕我直言,在调试模式下监视生成的查询是很好的做法