Настройка параметров выборки данных LoadingCustomizationStruct, типы данных, представление, ограничение, постраничная загрузка

LoadingCustomizationStruct - это класс Flexberry ORM для задания параметров выборки данных (в т.ч. ограничение), реализующий собственное API, в отличие от альтернативного варианта на основе LINQ. LoadingCustomizationStruct позволяет полностью настроить параметры сервиса данных для операций чтения объектов данных.

Удобно создавать структуру LoadingCustomizationStruct с помощью статического метода GetSimpleStruct.

LoadingCustomizationStruct lcs = LoadingCustomizationStruct.GetSimpleStruct(typeof(Шапка), "ШапкаE");

Параметры LoadingCustomizationStruct

LoadingCustomizationStruct позволяет настраивать следующие параметры чтения:

  • View — указывает представление, в соответствии с которым будет выполнено чтение;
  • ReturnTop — указание количества возвращаемых записей;
  • LoadingTypes — указывает классы данных, чьи экземпляры требуется читать (пример);
  • ColumnsSort — параметры сортировки возвращаемых результатов;
  • ColumnsOrder — порядок следования свойств объекта данных в результирующей строке с разделителями, актуально, если для чтения используется метод сервиса данных LoadStringedObjectView.
  • InitDataCopy — включение или отключение инициализации копии данных при вычитке данных.
  • LimitFunctionограничение на зачитываемые объекты данных, с сервера будут возвращены только те объекты, что удовлетворяют данному ограничению;
  • Distinct — получение различных данных (используется, например, с методом LoadRawValues SQLDataService).
  • LoadingBufferSize — размер порции при порционном чтении;
  • RowNumber — указание диапазона индексов загружаемых объектов, lcs.RowNumber = new RowNumberDef(2, 5); (удобно, например, для постраничного вывода). Нумерация строк начинается с 1. Первый параметр номер строки, с которой начинать загрузку, второй параметр - номер строки, на которой заканчивать загрузку включительно.

Применение LoadingCustomizationStruct

Чтобы вычитать набор данных из базы в память, необходимо

  1. Создать объект типа ICSSoft.STORMNET.Business.LoadingCustomizationStruct
LoadingCustomizationStruct lcs = LoadingCustomizationStruct.GetSimpleStruct(тип, представление);

  1. возможно вручную установить представление
lcs.View = Клиент.Views.КлиентE;
  1. Установить тип вычитываемых объектов
lcs.LoadingTypes=new Type[) {typeof(Кредит)};
  1. Наложить ограничение на вычитываемые объекты (если ограничение не будет наложено - вычитаются все объекты такого типа)
lcs.LimitFunction = <Объект типа ICSSoft.STORMNET.FunctionalLanguage.Function>
  1. Настроить другие параметры чтения (не обязательно)
  2. Сделать запрос к серверу, используя метод LoadObjects сервиса данных
var credits = DataServiceProvider.DataService.LoadObjects(lcs).Cast<Кредит>();

Пример

Пример использования LoadingCustomizationStruct доступен по адресу: https://github.com/Flexberry/FlexberryORM-DemoApp/blob/master/FlexberryORM/CDLIB/CDADMTEST/Form1.cs.