下面给出了我用来从Dynamodb表中检索细节的方法。但是,当我调用此方法时,它最终抛出异常“无法找到关键属性appointmentId的属性”。这个特定表的主键是appointmentId,但我已经在patientId列上创建了一个全局二级索引。我在下面的查询中使用该索引来获取给定patientID的约会细节。
public async Task GetAppointmentByPatientID(int patientID)
{
var context = CommonUtils.Instance.DynamoDBContext;
PatientAppointmentObjectList.Clear();
DynamoDBOperationConfig config = new DynamoDBOperationConfig();
config.IndexName = DBConstants.APPOINTMENT_PATIENTID_GSI;
AsyncSearch<ScheduledAppointment> appQuery = context.QueryAsync<ScheduledAppointment>(patientID.ToString(), config);
IEnumerable<ScheduledAppointment> appList = await appQuery.GetRemainingAsync();
appList.Distinct().ToList().ForEach(i => PatientAppointmentObjectList.Add(i));
if (PropertyChanged != null)
this.OnPropertyChanged("PatientAppointmentObjectList");
}
}
答案 0 :(得分:4)
这是一个愚蠢的错误。我已经将表的哈希键列作为&#34;的预约ID&#34;和名为AppointmentID的模型对象属性。在属性名称的情况下,不匹配会混淆dynamodb映射。