我有这个模型:
public class Company
{
[DynamoDBHashKey("PK")]
public string Id { get;set; }
[DynamoDBRangeKey("SK")]
public string Type { get;set; }
[DynamoDBGlobalSecondaryIndexRangeKey("GSI1")]
[DynamoDBProperty]
public string Name { get; set; }
}
我的索引称为GSI1,其分区键为Type(列名称为“ SK”),其排序键为名称为“ GSI1SK”的字段。
我假设如果我使用DynamoDbContext
插入此模型的实例,它将创建具有以下属性的项目:
但是结果GSI1SK
字段为空。
那么此DynamoDBGlobalSecondaryIndexRangeKey
属性如何工作?
看起来好像要填充GSI1SK
字段,我需要在模型中再创建一个字段并手动填充它。最好的选择是什么?
答案 0 :(得分:0)
您在文本中描述的内容与代码之间存在一些差异。
一方面您写
,其排序键是名称为“ GSI1SK”的字段。
另一方面,您的代码将该字段的名称指定为GSI1
:
[DynamoDBGlobalSecondaryIndexRangeKey("GSI1")]
IIUC您想拥有一个字段,该字段在索引中具有一个名称,在表中具有不同的名称。与DDB交互的代码通常不是这样工作的(实际上,我不确定它是否受支持)。通常,一个字段只有一个名称,在通过表访问项目以及通过GSI访问该项目时,您都使用相同的名称。