数组的大小限制?

时间:2014-09-26 07:13:23

标签: c# arrays linq nhibernate

在C#中我有一个类文档。我从我的数据库填充数组,如:

Documents[] docArray = ((Documents[])(ActiveRecordBase.FindAll(typeof(Documents), orders, Crit.ToArray())));

我得到一个包含511000个项目的数组(是的,超过50万个)。

如果我然后执行以下操作:(编辑:已更改= ==)

var returnValue = from d in docArray where d.UserCode == "olf" select d;

我可以看到我的returnValue包含零结果(实际上它表示“枚举没有产生结果”)尽管知道我确实有结果匹配。

为了确保以上内容可行,我尝试将文档数限制为20000然后再进行相同操作,结果是10000结果(这是正确的)。

任何人都可以解释为什么以上不起作用?我怎么能让它发挥作用?

我知道在申请数据之前我应该​​能够添加标准:

Crit.Add(Expression.Eq("UserCode", "olf");

不这样做的原因是当SQL服务器上的sp_execute命令执行SQL时,需要55秒(这会给我一个超时)。相反,上述时间不到四秒钟。这是我试图解决的另一个问题 - 通过阅读所有文档并仅使用Linq获取我想要的行。

0 个答案:

没有答案