Настройка параметров выборки данных 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. Первый параметр номер строки, с которой начинать загрузку, второй параметр - номер строки, на которой заканчивать загрузку включительно.
Note: Представление и ограничение: Представление
View
должно содержать в себе все свойства, которые используются в ограничении LimitFunction
, чтобы не произошло ошибки или неверного счёта. Если есть потребность расширить представление в соответствии с функцией ограничения LimitFunction
, можно воспользоваться специальным классом ViewPropertyAppender.Применение LoadingCustomizationStruct
Чтобы вычитать набор данных из базы в память, необходимо
- Создать объект типа ICSSoft.STORMNET.Business.LoadingCustomizationStruct
LoadingCustomizationStruct lcs = LoadingCustomizationStruct.GetSimpleStruct(тип, представление);
- возможно вручную установить представление
lcs.View = Клиент.Views.КлиентE;
- Установить тип вычитываемых объектов
lcs.LoadingTypes=new Type[) {typeof(Кредит)};
- Наложить ограничение на вычитываемые объекты (если ограничение не будет наложено - вычитаются все объекты такого типа)
lcs.LimitFunction = <Объект типа ICSSoft.STORMNET.FunctionalLanguage.Function>
- Настроить другие параметры чтения (не обязательно)
- Сделать запрос к серверу, используя метод
LoadObjects
сервиса данных
var credits = DataServiceProvider.DataService.LoadObjects(lcs).Cast<Кредит>();
Пример
Пример использования LoadingCustomizationStruct
доступен по адресу: https://github.com/Flexberry/FlexberryORM-DemoApp/blob/master/FlexberryORM/CDLIB/CDADMTEST/Form1.cs.