下面给出的是我用来从 Dynamodb 表中检索详细信息的方法。但是当我调用这个方法时,它最终抛出了一个异常“无法找到关键属性任命 ID 的属性”。这个特定表的主键是appointmentId,但我已经在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");
        }
    }

最佳答案

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

关于c#-4.0 - 使用全局二级索引的 .net queryAsync 方法的 AWS sdk 失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31963166/

10-11 08:03