Skip to main content

DYNDB018: Invalid key format syntax

FieldValue
CodeDYNDB018
SeverityError

Message​

Key format '{0}' on property '{1}' contains invalid syntax or placeholders

Description​

Key formats must use valid placeholder syntax like 0, 1, etc. and cannot contain reserved characters. The source generator parses key formats to generate key construction methods, and invalid syntax prevents correct code generation.

Example​

The following code triggers this diagnostic:

[DynamoDbTable("Events")]
public partial class Event
{
[PartitionKey]
[DynamoDbAttribute("pk")]
[Computed("Year", "Month", Separator = "#", Format = "{invalid}")]
public string Pk { get; set; } = string.Empty;

[Extracted("Pk", 0)]
public int Year { get; set; }

[Extracted("Pk", 1)]
public int Month { get; set; }
}

Fix​

The corrected version:

[DynamoDbTable("Events")]
public partial class Event
{
[PartitionKey]
[DynamoDbAttribute("pk")]
[Computed("Year", "Month", Separator = "#")]
public string Pk { get; set; } = string.Empty;

[Extracted("Pk", 0)]
public int Year { get; set; }

[Extracted("Pk", 1)]
public int Month { get; set; }
}