Table of Contents

Class ValueContainerData

Namespace
MASES.EntityFrameworkCore.KNet.Serialization
Assembly
MASES.EntityFrameworkCore.KNet.Serialization.dll

Implementation of IValueContainerData

public record ValueContainerData : IValueContainerData, IValueContainerMetadata, IEquatable<ValueContainerData>
Inheritance
ValueContainerData
Implements
Inherited Members

Constructors

ValueContainerData(IValueContainerMetadata, object[], object[]?)

Implementation of IValueContainerData

public ValueContainerData(IValueContainerMetadata Metadata, object[] Values, object[]? ComplexValues)

Parameters

Metadata IValueContainerMetadata

The IValueContainerMetadata containing the metadata information

Values object[]

The values associated to FlattenedProperties

ComplexValues object[]

The values associated to ComplexProperties

Properties

ComplexProperties

The IComplexProperty associated to EntityType

public IComplexProperty[]? ComplexProperties { get; }

Property Value

IComplexProperty[]

ComplexPropertyValues

The ValueBuffer containing all indexed values of the ComplexProperties

public object?[]? ComplexPropertyValues { get; }

Property Value

object[]

ComplexValues

The values associated to ComplexProperties

public object[]? ComplexValues { get; init; }

Property Value

object[]

EntityType

The IEntityType with changes

public IEntityType EntityType { get; }

Property Value

IEntityType

FlattenedProperties

The flattened IProperty associated to EntityType

public IProperty[] FlattenedProperties { get; }

Property Value

IProperty[]

FullFlattenedProperties

The full, unfiltered flattened IProperty set of EntityType — i.e. what EntityType.GetFlattenedProperties() returns, independent of any projection narrowing applied to FlattenedProperties. Exposed as the array itself (not just its length) so it can be reused for other purposes beyond sizing a buffer. Implementations should compute this once when the metadata instance is built (once per query for a projected/filtered metadata, once per entity type for the shared full metadata), not on every call: IValueContainer.GetData reads FullFlattenedProperties.Length once per deserialized record to size its output ValueBuffer, since flattened properties are addressed by GetIndex(), an index relative to the full flattened set regardless of any projection.

public IProperty[] FullFlattenedProperties { get; }

Property Value

IProperty[]

Metadata

The IValueContainerMetadata containing the metadata information

public IValueContainerMetadata Metadata { get; init; }

Property Value

IValueContainerMetadata

Properties

The IProperty associated to EntityType

public IProperty[] Properties { get; }

Property Value

IProperty[]

PropertyValues

The ValueBuffer containing all indexed values of the FlattenedProperties

public object?[] PropertyValues { get; }

Property Value

object[]

Remarks

Values are indexed and the first values are associated to Properties too

Values

The values associated to FlattenedProperties

public object[] Values { get; init; }

Property Value

object[]