Я пытаюсь использовать функцию QueryAsync из AWS C# SDK, вот мой код:
var request = new QueryRequest
{
TableName = "happy-projects",
KeyConditionExpression = "PK = :PK and SK = :SK",
ExpressionAttributeValues = new Dictionary
{
{":PK", new AttributeValue { S = "ORG#prueba2" }},
{":SK", new AttributeValue { S = "EMP#prueba2" }}
}
};
var res = context.QueryAsync(request).GetRemainingAsync().GetAwaiter().GetResult();
Console.WriteLine(res);
После запуска кода он показывает мне это сообщение:
System.InvalidCastException: 'Невозможно привести объект типа «Amazon.DynamoDBv2.Model.QueryRequest» на тип «System.String».
Сейчас я использую .Net Core 3.1 и AWS SDk DynamoDB.
В настоящее время я использую .Net Core 3.1 и AWS DynamoDB SDk.
Это это мое объявление контекста:
public static IAmazonDynamoDB client;
client = new AmazonDynamoDBClient(RegionEndpoint.USWest2);
DynamoDBContext context = new DynamoDBContext(client);
а это мой класс DataModelSchema:
namespace DynamoDB
{
[DynamoDBTable("happy-projects")]
public class DataModelSchema
{
[DynamoDBHashKey]
public string PK { get; set; }
[DynamoDBRangeKey("SK")]
public string SK { get; set; }
[DynamoDBProperty("name")]
public string name { get; set; }
[DynamoDBProperty("email")]
public string email { get; set; }
[DynamoDBProperty("Data")]
public string Data { get; set; }
public override string ToString()
{
return string.Format("{0} - {1}", name, email);
}
}
}
Это полное сообщение об ошибке:
System.InvalidCastException
HResult=0x80004002
Message=Unable to cast object of type 'Amazon.DynamoDBv2.Model.QueryRequest' to type 'System.String'.
Source=AWSSDK.DynamoDBv2
StackTrace:
at Amazon.DynamoDBv2.Converter`1.TryTo(Object value, Primitive& p)
at Amazon.DynamoDBv2.Converter.TryToEntry(Object value, DynamoDBEntry& entry)
at Amazon.DynamoDBv2.Converter.ToEntry(Object value)
at Amazon.DynamoDBv2.DynamoDBEntryConversion.ConvertToEntry(Type inputType, Object value)
at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDynamoDBEntry(SimplePropertyStorage propertyStorage, Object value, DynamoDBFlatConfig flatConfig, Boolean canReturnScalarInsteadOfList)
at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDynamoDBEntry(SimplePropertyStorage propertyStorage, Object value, DynamoDBFlatConfig flatConfig)
at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ValueToDynamoDBEntry(PropertyStorage propertyStorage, Object value, DynamoDBFlatConfig flatConfig)
at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ComposeQueryFilter(DynamoDBFlatConfig currentConfig, Object hashKeyValue, IEnumerable`1 conditions, ItemStorageConfig storageConfig, List`1& indexNames)
at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ConvertQueryByValue[T](Object hashKeyValue, IEnumerable`1 conditions, DynamoDBOperationConfig operationConfig, ItemStorageConfig storageConfig)
at Amazon.DynamoDBv2.DataModel.DynamoDBContext.QueryAsync[T](Object hashKeyValue, DynamoDBOperationConfig operationConfig)
at DynamoDB.DataModel.RunDataModel() in \DynamoDB\DynamoDB\DataModel.cs:line 80
at DynamoDB.Program.Main(String[] args) in DynamoDB\DynamoDB\Program.cs:line 17
Подробнее здесь: https://stackoverflow.com/questions/691 ... -sharp-sdk