2017-06-02 42 views
2

对于我的QuickBooks的在线整合,我使用的.NET SDK和以前使用LINQ从ServiceContext访问数据:我可以使用LINQ从Quickbooks Online ServiceContext返回100多条记录吗?

var paymentMethodsService = new QueryService<PaymentMethod>(ServiceContext); 
_paymentMethods = paymentMethodsService.Select(x => x).ToList(); 

测试时,我们注意到,这仅返回前100条记录。 (大概是因为这是默认页面大小?)

我们可以通过使用含有MAXRESULTS查询解决这个问题:

var itemsService = new QueryService<Item>(ServiceContext); 
_items = itemsService.ExecuteIdsQuery("SELECT * FROM Item MAXRESULTS 1000").ToList(); 

我的问题是,我可以做到不使用查询字符串相同的结果?

+0

你有超过100条记录在数据库中?您是否尝试过字符串查询以查看您是否收回了更多数据? – jdweng

+0

@jdweng是查询字符串返回300+的记录,因此,如果没有其他办法这不是世界末日。如果可能的话,宁愿避免使用硬编码的查询字符串。 –

+0

如果你做'拿(10000)。选择(...)'? – Evk

回答

0

我必须承认,我不知道QuickBooks的在线,即使是,但无论如何,我认为你可以重写默认页面大小与LINQ Take(yourPageSize)。虽然目前还不清楚如何以这种方式获取集合中的所有项目,但事先并不知道总数。希望你不需要做这在您的方案(或者,如果你做的 - 也许你可以随心所欲的使用大量的Take如果你不会找到另一种方式)。

+0

您没有(不能)知道的位是1,000是允许的最大页面大小。在我来说,我不期待在列表中曾经有不止这个数项的更多,但我会添加一个检查调用'.Skip(1000)'当1000元返回给我的第一个电话。 –

相关问题