2017-06-02 44 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元返回給我的第一個電話。 –

相關問題