5

下面给出的是我用来从 Dynamodb 表中检索详细信息的方法。但是当我调用这个方法时,它最终抛出了一个异常“无法找到关键属性约会 ID 的属性”。这个特定表的主键是约会ID,但我已经在 PatientId 列上创建了一个全局二级索引。我在下面的查询中使用该索引来通过给定的患者 ID 获取预约详细信息。

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");
        }
    }
4

1 回答 1

10

这是一个愚蠢的错误。我将表的哈希键列作为“appointmentID”,并将模型对象属性命名为 AppointmentID。属性名称不匹配的情况混淆了 dynamodb 映射。

于 2015-08-12T11:46:38.477 回答