使用全局二级索引的.net query async方法的AWS sdk失败

时间:2015-08-12 10:54:54

标签: c#-4.0 amazon-dynamodb aws-sdk secondary-indexes

下面给出了我用来从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");
        }
    }

1 个答案:

答案 0 :(得分:4)

这是一个愚蠢的错误。我已经将表的哈希键列作为&#34;的预约ID&#34;和名为AppointmentID的模型对象属性。在属性名称的情况下,不匹配会混淆dynamodb映射。