我知道这个answer解释了lazy =“extra”的设置。
我的问题是,使用lazy =“extra”是否有任何相关费用?为什么我们不将lazy =“extra”设置为我们将其设置为“true”的每个实例?它似乎与“真实”相同但更好?
答案 0 :(得分:4)
我唯一能想到的是,如果集合主要用作数据源或循环迭代,最好在第一次访问任何属性时获取完整集合(甚至Count
) 。
否则,您最终可能会执行超出必要的查询。
例如
bool found = false;
int pos = 0;
while (!found && pos < Collection.Count)
{
if (MyFunction(Collection[pos]))
{
found = true;
}
pos++;
}