Background:
Currently, TableStorage allows handling multiple types in blobs using a custom serializer, but table entities don't support this natively. This limits flexibility and type safety when storing heterogeneous entities within the same table.
Proposal:
Instead of creating a new tableset type, introduce three new types in a new project to enable fluent typing in tables:
-
FluentTableEntity<T..TX>
- Stores multiple types in a single table using a
$type field to differentiate entity types.
-
FluentPartitionTableEntity<T..TX>
- Partition key is set as the
$type value, further optimizing queries by type.
-
FluentRowKeyTableEntity<T..TX>
- Row key is set as the
$type value, supporting table designs requiring type-based row identification.
Benefits:
- Flexible handling of multiple entity types per table
- Leverages existing custom serialization approaches
- Simplifies partitioning and querying by type
Action Items:
- Design and implement
FluentTableEntity<T..TX>, FluentPartitionTableEntity<T..TX>, and FluentRowKeyTableEntity<T..TX>
- Document usage patterns and migration strategies
- Add tests and example scenarios for each new type
Label: enhancement
Background:
Currently, TableStorage allows handling multiple types in blobs using a custom serializer, but table entities don't support this natively. This limits flexibility and type safety when storing heterogeneous entities within the same table.
Proposal:
Instead of creating a new tableset type, introduce three new types in a new project to enable fluent typing in tables:
FluentTableEntity<T..TX>
$typefield to differentiate entity types.FluentPartitionTableEntity<T..TX>
$typevalue, further optimizing queries by type.FluentRowKeyTableEntity<T..TX>
$typevalue, supporting table designs requiring type-based row identification.Benefits:
Action Items:
FluentTableEntity<T..TX>,FluentPartitionTableEntity<T..TX>, andFluentRowKeyTableEntity<T..TX>Label: enhancement