我知道这个问题的变种之前(甚至我)已经被问过,但我还是不明白,一两件事这个...正确的方法来检索超过128个文件与RavenDB
它我的理解是一个可以通过这样检索比128的默认设置的详细资料:
session.Advanced.MaxNumberOfRequestsPerSession = int.MaxValue;
而且我了解到,WHERE子句应该是一个ExpressionTree而不是Func键,以便它是作为可查询的,而不是治疗Enumerable的。所以我认为这应该工作:
public static List<T> GetObjectList<T>(Expression<Func<T, bool>> whereClause)
{
using (IDocumentSession session = GetRavenSession())
{
return session.Query<T>().Where(whereClause).ToList();
}
}
但是,那只返回128个文件。为什么?
注意,这里是调用上述方法的代码:
RavenDataAccessComponent.GetObjectList<Ccm>(x => x.TimeStamp > lastReadTime);
如果我加拿(N),那么我可以,因为我喜欢获得尽可能多的文件。例如,这将返回200个文件:基于这一切
return session.Query<T>().Where(whereClause).Take(200).ToList();
,它似乎是检索数以千计的文件进行适当的方法是设置MaxNumberOfRequestsPerSession并在查询中使用采取()。是对的吗?如果不是,应该如何做?
对于我的应用程序,我需要检索数千份文件(即在他们的数据非常少)。我们将这些文档保存在内存中,并用作图表的数据源。
**编辑**
我在采取()使用int.MaxValue尝试:
return session.Query<T>().Where(whereClause).Take(int.MaxValue).ToList();
并返回1024哎呀。我如何获得超过1024个?
**编辑2 - 样品文件显示数据**
{
"Header_ID": 3525880,
"Sub_ID": "120403261139",
"TimeStamp": "2012-04-05T15:14:13.9870000",
"Equipment_ID": "PBG11A-CCM",
"AverageAbsorber1": "284.451",
"AverageAbsorber2": "108.442",
"AverageAbsorber3": "886.523",
"AverageAbsorber4": "176.773"
}
您是否想过将一个文档中的所有10000个点作为一个集合? – SteadyEddi 2012-05-26 18:28:46