Правила использования порционного чтения

Весьма удобной возможностью является чтение объектов данных порциями, по частям. Существует возможность вызвать операцию чтения таким образом, чтобы кроме порции объектов данных, сервис данных возвратил некоторое состояние чтения. Передавая последующим операциям чтения это состояние, можно получать очередные порции.

Для выполнения порционного чтения необходимо:

  • Установить в LoadingCustomizationStruct дополнительно размер порции через свойство LoadingCustomizationStruct.
  • Вызвать метод чтения объектов с параметрами LoadingCustomizationStruct и состояния, получить состояние.
  • Выполнять последующее дочитывание по состоянию.
IDataService ds = DataServiceProvider.DataService;
LoadingCustomizationStruct lcs = LoadingCustomizationStruct.GetSimpleStruct(typeof(Автор), Автор.Views.Главное);					
lcs.LoadingBufferSize = 1; // Размер порции.
object state = null; // Сюда вернётся состояние сервиса данных.
DataObject[) dataobjects = ds.LoadObjects(lcs, ref state); // Вызываем сервис данных, состояние запоминается.
prvPrintPortion(dataobjects); // Печатаем первую порцию.
while (dataobjects.Length > 0) // Пока ещё что-то возвращается.
{
	Console.WriteLine("Нажмите Enter, чтобы прочитать очередную порцию авторов.");
	Console.ReadLine();
	dataobjects = ds.LoadObjects(ref state); // Прочитываем очередную порцию. Lcs уже не передаём.
	prvPrintPortion(dataobjects); // Печатаем очередную порцию.
} 

Console.WriteLine("Больше авторов нет. Конец.");
Console.Read();