«Жадная» загрузка свойств
<< Click to Display Table of Contents >> Разработка > Рекомендации по разработке для масштабируемых систем > Обращения к веб-серверу «Жадная» загрузка свойств |
При получении списка сущностей с веб-сервера можно загружать их свойства следующими способами:
•сразу вместе с сущностями («жадная» загрузка);
•отдельным обращением в каждой из сущностей к незагруженному свойству. Тогда программный код выполнится медленнее, чем в способе выше, потому что вместо одного запроса списка сущностей с нужным свойством выполнится n+1 запросов, где n – количество сущностей в списке.
Поэтому для оптимизации программного кода рекомендуем заранее предположить, какие свойства понадобятся при получении сущности, и загружать их «жадно».
Например, у официальных документов есть признак, что он находится у контрагента – IsHeldByCounterParty. Признак не добавлен в колонки списков, но используется в проверке доступности действия:
public virtual bool CanReturnFromCounterparty(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return _obj.AccessRights.CanUpdate() &&
_obj.AccessRights.CanRegister() &&
_obj.IsHeldByCounterParty == true;
}
Чтобы исключить лишние запросы, для свойства установлен флажок Загружать значение сразу (используется «жадная» загрузка).
© Компания Directum, 2024 |