Класс Terrasoft.Configuration.EntityMapper
Glossary Item Box
Общие сведения
Класс Terrasoft.Configuration.EntityMapper — это утилитный класс конфигурации, который находится в пакете [FinAppLending] продукта Lending. EntittyMapper позволяет сопоставлять данные одной сущности (Entity) с другой по правилам, определенным в конфигурационном файле. Использование подхода сопоставления данных разных сущностей позволяет избежать появления однообразного кода.
Идея сопоставления данных разных сущностей реализована в следующих классах:
- EntityMapper — реализует логику сопоставления.
- EntityResult — определяет в каком виде вернется сопоставленная сущность.
- MapConfig — представляет набор правил для сопоставления.
- DetailMapConfig — используется для установки списка правил сопоставления деталей и связанных с ними сущностей.
- RelationEntityMapConfig — содержит правила для сопоставления связанных сущностей.
- EntityFilterMap — представляет из себя фильтр для запроса в базу данных.
Terrasoft.Configuration.EntityMapper
Табл. 1. — Описание методов класса Terrasoft.Configuration.EntityMapper
Название | Параметры | Возвращаемое значение | Описание |
---|---|---|---|
public virtual EntityResult GetMappedEntity(Guid recId, MapConfig config) |
recId — GUID записи в базе данных; config — экземпляр класса MapConfig, представляющий из себя набор правил сопоставления. |
Экземпляр класса EntityResult, представляющего из себя сопоставленные данные для двух объектов Entity. | Возвращает сопоставленные данные для двух объектов Entity. |
public virtual Dictionary<string, object> GetColumnsValues(Guid recordId, MapConfig config, Dictionary<string, object> result) |
recordId — GUID записи в базе данных; config — экземпляр класса MapConfig, представляющий из себя набор правил сопоставления; result — словарь колонок и их значений уже сопоставленной сущности. |
Словарь колонок и их значений. | Получает из базы данных главную сущность и сопоставляет ее колонки и значения по правилам, указанным в объекте config. |
public virtual Dictionary<string, object> GetRelationEntityColumnsValues(List<RelationEntityMapConfig> relations, Dictionary<string, object> dictionaryToMerge, string columnName, Terrasoft.Nui.ServiceModel.DataContract.LookupColumnValue entitylookup) |
relations — список правил для получения связанных записей; dictionaryToMerge — словарь с колонками и их значениями; columnName — название родительской колонки; entitylookup — объект, содержащий название и Id записи в базе. |
Словарь колонок и их значений. | Получает из базы данных связанные сущности и сопоставляет их с основными сущностями. |
protected virtual EntitySchemaQuery SetColumns(EntitySchemaQuery esq, Dictionary<string, string> columns) |
esq — экземпляр EntitySchemaQuery; columns — словарь названий сопоставляемых колонок. |
Экземпляр класса EntitySchemaQuery. | Устанавливает колонки для выбора из базы данных. |
protected EntitySchemaQuery SetFilters(EntitySchemaQuery esq, List<EntityFilterMap> filters) |
esq — экземпляр EntitySchemaQuery; filters — список устанавливаемых фильтров. |
Экземпляр класса EntitySchemaQuery. | Устанавливает фильтры на сущности для выбора записей из базы данных. |
protected virtual Dictionary<string, List<Dictionary<string, object>>> GetDetailsColumnsValues(Guid recId, MapConfig config, Dictionary<string, List<Dictionary<string, object>>> result) |
recId — GUID записи в базе данных; config — экземпляр класса MapConfig, представляющий из себя набор правил сопоставления; result — словарь колонок и их значений уже сопоставленной сущности. |
Словарь деталей, колонок деталей и значений колонок. | Получает из базы данных сущность и сопоставляет ее колонки и значения по правилам, указанным в объекте config. |
Terrasoft.Configuration.EntityResult
Используется как контейнер для возврата сопоставленных значений.
Табл. 2. — Описание основных свойств класса Terrasoft.Configuration.EntityResult
Свойство | Тип | Описание |
---|---|---|
Columns | Dictionary<string, object> | Словарь с названиями колонок основной сущности и их значениями. |
Details | Dictionary<string, List<Dictionary<string, object>>> | Словарь названий деталей со списком их колонок и значений. |
Terrasoft.Configuration.MapConfig
Используется для установки списка правил сопоставления основной сущности, деталей и их связанных сущностей.
Табл. 3. — Описание основных свойств класса Terrasoft.Configuration.MapConfig
Свойство | Тип | Описание |
---|---|---|
SourceEntityName | string | Название сущности в БД. |
Columns | Dictionary<string, object> | Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности. |
DetailsConfig | List<DetailMapConfig> | Список конфигурационных объектов с правилами для деталей. |
CleanDetails | List<string> | Список названий деталей для очистки их значений. |
RelationEntities | List<RelationEntityMapConfig> | Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью. |
Terrasoft.Configuration.DetailMapConfig
Используется для установки списка правил сопоставления деталей и связанных с ними сущностей.
Табл. 4. — Описание основных свойств класса Terrasoft.Configuration.DetailMapConfig
Свойство | Тип | Описание |
---|---|---|
DetailName | string | Название детали (для обеспечения уникальности экземпляра детали). |
SourceEntityName | string | Название сущности в базе данных. |
Columns | Dictionary<string, object> | Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности. |
Filters | List<EntityFilterMap> | Список конфигурационных объектов с правилами фильтрации для более точных выборок из базы данных. |
RelationEntities | List<RelationEntityMapConfig> | Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью. |
Terrasoft.Configuration.RelationEntityMapConfig
Содержит правила для сопоставления связанных сущностей.
Табл. 5. — Описание основных свойств класса Terrasoft.Configuration.RelationEntityMapConfig
Свойство | Тип | Описание |
---|---|---|
ParentColumnName | string | Название родительской колонки, при нахождении которой будет срабатывать логика получения и сопоставления данных по сущности. |
SourceEntityName | string | Название сущности в базе данных. |
Columns | Dictionary<string, object> | Словарь с названиями колонок одной сущности и сопоставляемыми колонками другой сущности. |
Filters | List<EntityFilterMap> | Список конфигурационных объектов с правилами фильтрации для уточнения выборок из базы данных. |
RelationEntities | List<RelationEntityMapConfig> | Список конфигурационных объектов с правилами сопоставления связанных записей с главной сущностью. |
Terrasoft.Configuration.EntityFilterMap
Класс, представляющий из себя фильтр для запроса в базу данных.
Табл. 5. — Описание основных свойств класса Terrasoft.Configuration.EntityFilterMap
Свойство | Тип | Описание |
---|---|---|
ColumnName | string | Название колонки, при нахождении которой будет срабатывать логика фильтрации |
Value | object | Значение, с которым необходимо сравнение. |