Вопрос

Получение сущности справочника из сущности записи

Добрый день.

Проблема такова: есть сущность DocumentEntity, в ней есть справочное поле SenderId(в нем хранится Id из справочника) - каким образом можно получить сущность записи из справочника не прибегая к ESQ (с ESQ все работает, но при отладке в VS обратил внимание на свойство LookupColumnEntities)?

Код:

var SenderEntityLookup = DocumentEntity.LookupColumnEntities.GetEntity("Sender") as Sender;
var Code = SenderEntityLookup.GetTypedColumnValue<string>("Code");

VS:

LoadState: NotLoaded

"Невозможно получить значение колонки Code, так как она не была загружена"

 

У меня такой же вопрос

1 комментарий

Данные хранятся в базе на сервере, их изначально нет в объектах.

В единственном примере упоминания этого свойства в конфигурации в схеме DetailIndexer эту Entity так получают, а потом отдельно наполняют при помощи SetColumnValue:

private Entity GetDetailParentEntity(Entity detailEntity) {
	var parentEntityName = detailEntity.SchemaName.Contains("Contact") ? "Contact" : "Account";
	var parentEntityColumn = $"{parentEntityName}Id";
	if (!detailEntity.IsColumnValueLoaded(parentEntityColumn)) {
		return null;
	}
	var parentEntity = detailEntity.LookupColumnEntities.GetEntity(parentEntityName);
	parentEntity.SetColumnValue(parentEntity.Schema.PrimaryColumn,
		detailEntity.GetTypedColumnValue<Guid>(parentEntityColumn));
	return parentEntity;
}

 

Войдите или зарегистрируйтесь, чтобы комментировать