Посмотрите на ICustomerQuery
Вы можете получать данные с фильтрацией, например: фильтр диапазона имен (a-i, j-r than s-z), фильтр диапазона дат, имя начинается с фильтра и другие некоторые другие фильтры.
Также это можно использовать, чтобы получить только те вещи, которые вам нравятся: FullName и AccountNumber .
Таким образом, вы можете использовать меньше памяти. Посмотрите на приведенный ниже пример кода:
public IList<CustomerModelQB> GetAllCustomer(string fromName = "a", string toName = "z", bool IsActiveOnly = true)
{
RequestMsgSet.ClearRequests();
ICustomerQuery CustomerQueryRq = RequestMsgSet.AppendCustomerQueryRq();
if (IsActiveOnly)
{
if (CustomerQueryRq != null)
CustomerQueryRq.ORCustomerListQuery.CustomerListFilter.ActiveStatus.SetValue(
ENActiveStatus.asActiveOnly);
}
else
CustomerQueryRq.ORCustomerListQuery.CustomerListFilter.ActiveStatus.SetValue(ENActiveStatus.asAll);
//CustomerQueryRq.ORCustomerListQuery.CustomerListFilter.MaxReturned.SetValue(3);
//Set field value for FromName
CustomerQueryRq.ORCustomerListQuery.CustomerListFilter.ORNameFilter.NameRangeFilter.FromName.SetValue(fromName);
//Set field value for ToName
CustomerQueryRq.ORCustomerListQuery.CustomerListFilter.ORNameFilter.NameRangeFilter.ToName.SetValue(toName);
CustomerQueryRq.IncludeRetElementList.Add("FullName");
CustomerQueryRq.IncludeRetElementList.Add("AccountNumber");
ResponseMsgSet = SessionManager.DoRequests(RequestMsgSet);
return WalkCustomerQuery(ResponseMsgSet);
}
Далее вы можете обратиться к этому вопросу для алфавитного обозначения вещей.