Get, GetAll, GetCached, GetAllCached – получение сущности
<< Click to Display Table of Contents >> Объектная модель > Действия с репозиториями и сущностями Get, GetAll, GetCached, GetAllCached – получение сущности |
Для получения сущностей используйте методы Get(), GetAll(), GetCached() и GetAllCached() репозитория. Для получения конкретной сущности можно использовать метод Get(), указав в качестве параметра Id сущности. При вызове GetAll() без параметров метод вернет все экземпляры сущности.
Методы GetCached() и GetAllCached() работают так же, как методы Get() и GetAll(), но берут данные из кэшированных типов сущностей, для которых в редакторе установлен флажок Кэшировать на клиенте. Чаще всего кэшируются небольшие по объему справочники (до 2000 записей), которые редко изменяются. Например, в базовом решении Directum RX закэшированы справочники Тип документа (DocumentType), Страна (Country), Валюта (Currency) и другие.
ВАЖНО. Методы Get() и GetAll() можно использовать только в серверном коде. Вызов методов для получения сущностей в клиентском или разделяемом коде может привести к возникновению исключения. Метод GetAllCached() можно вызывать в серверном и в клиентском коде.
Если необходимо получить сущность или список сущностей, исходя из каких-либо ее свойств, например, Имя, Состояние, то в качестве параметра можно указать LINQ-запрос, который вернет все сущности, удовлетворяющие результатам этого запроса.
Методы
Имя |
Описание |
---|---|
Получить сущность по идентификатору |
|
GetAll() + 2 перегрузки |
Получить все сущности |
Получить сущность из кэша по идентификатору |
|
GetAllCached() + 2 перегрузки |
Получить все сущности из кэша |
Equals() + 2 перегрузки |
Сравнить сущности |
Проверить, совпадает ли тип сущности с типом сущностей репозитория |
|
Привести объект к типу сущности репозитория |
Пример 1. Получить запись по ИД
// Получить запись сотрудника с Id = 15.
var employee =Sungero.Company.Employees.Get(15);
Пример 2. Получение списка сущностей с условием (лямбда-выражение)
// Получить все документы, созданные в заданный период.
var periodEnd = Calendar.Now;
var periodBegin = cache.LastUpdate ?? periodEnd.AddDays(-180).Date;
var allDocuments = Content.ElectronicDocuments.GetAll().Where(t => t.Created.Between(periodBegin, periodEnd));
Пример 3. Получение списка сущностей с использованием LINQ-запроса
// Получить всех сотрудников, у которых указан номер телефона 12-34-56.
var employeeListPhone = Sungero.Company.Employees.GetAll(e => e.Phone.Equals("12-34-56"));
Пример 4. Получить все сущности из кэшируемого справочника Employee
// Проверить, что тип сущности Employee – кэшируемый.
if (Employees.Info.IsCacheable)
// Получить всех сотрудников типа Employee, у которых Id больше 15.
var employeeList = Employees.GetAllCached(e => e.Id > 15);
© Компания Directum, 2024 |