Skip to main content

DYNDB126: Empty LsiSortKey index name

FieldValue
CodeDYNDB126
SeverityError

Message

[LsiSortKey] on property '{0}' has an empty or whitespace index name

Description

The index name parameter on [LsiSortKey] must be a non-empty, non-whitespace string. The index name is used to identify the Local Secondary Index in DynamoDB and to generate the corresponding accessor on the table class.

Example

The following code triggers this diagnostic:

[DynamoDbTable("Orders")]
public partial class Order
{
[PartitionKey]
[DynamoDbAttribute("pk")]
public string Pk { get; set; } = string.Empty;

[SortKey]
[DynamoDbAttribute("sk")]
public string Sk { get; set; } = string.Empty;

[LsiSortKey("")]
[DynamoDbAttribute("createdAt")]
public DateTime CreatedAt { get; set; }
}

Fix

The corrected version:

[DynamoDbTable("Orders")]
public partial class Order
{
[PartitionKey]
[DynamoDbAttribute("pk")]
public string Pk { get; set; } = string.Empty;

[SortKey]
[DynamoDbAttribute("sk")]
public string Sk { get; set; } = string.Empty;

[LsiSortKey("lsi-created")]
[DynamoDbAttribute("createdAt")]
public DateTime CreatedAt { get; set; }
}