Table of Contents

Class BaseEntity

Namespace
BiExcellence.OpenBi.Api.BaseEntities
Assembly
BiExcellence.OpenBi.Api.Client.dll

A base entity: the schema-definition side of the dynamic custom-attribute (EAV) engine. A base entity owns a dynamically-named child table whose rows are Entity instances; the child table's columns are shaped by which TableAttribute rows are assigned to this base entity.

public sealed record BaseEntity : IBaseEntity
Inheritance
object
BaseEntity
Implements

Properties

CustomAttributes

The values of the table attributes defined on table SHOP_BASE_PRODUCT - the base entity's own extra fields, keyed by attribute name. Not the columns of its entities; those are TableAttributes.

[JsonPropertyName("customAttributes")]
public Dictionary<string, JsonElement>? CustomAttributes { get; init; }

Property Value

Dictionary<string, JsonElement>

Description

A free-text description of the base entity.

[JsonPropertyName("description")]
public string? Description { get; init; }

Property Value

string

EntityTableName

The table that holds the entities of this base entity (wire name tableName). Server-assigned when the base entity is created: SHOP_PRODUCT_ followed by the id in upper case without dashes. It is also the Type of a table attribute that refers to one of these entities.

[JsonPropertyName("tableName")]
public string? EntityTableName { get; init; }

Property Value

string

Id

The id of the base entity - the baseEntityId of its entities.

[JsonPropertyName("id")]
public string Id { get; init; }

Property Value

string

Name

The display name of the base entity.

[JsonPropertyName("name")]
public string? Name { get; init; }

Property Value

string

TableAttributes

The table attributes attached to this base entity - the columns every one of its entities can carry a value for. Read-only here: attach and detach them with AssignTableAttributeToBaseEntityAsync(IOpenBiApiClient, string, string, CancellationToken) and RemoveTableAttributeFromBaseEntityAsync(IOpenBiApiClient, string, string, CancellationToken).

[JsonPropertyName("tableAttributes")]
public TableAttribute[]? TableAttributes { get; init; }

Property Value

TableAttribute[]