Код: Выделить всё
[DynamoDBTable("TVShow")]
public class TVShow
{
[DynamoDBHashKey]
public string Id { get; set; }
[DynamoDBRangeKey]
public long Timestamp { get; set; }
[DynamoDBProperty]
public string Title { get; set; }
[DynamoDBProperty]
public double Rate { get; set; }
[DynamoDBProperty("Episodes")]
public List Episodes { get; set; }
}
[DynamoDBTable("Episode")]
public class Episode
{
[DynamoDBHashKey]
public string Id { get; set; }
[DynamoDBRangeKey]
public long Timestamp { get; set; }
[DynamoDBProperty]
public string Title { get; set; }
}
Код: Выделить всё
{
"Episodes": {
"L": [
{
"M": {
"Id": {
"S": "8ab47e73-188c-43e5-8010-1e22a982bb28"
},
"Timestamp": {
"N": "636830978394004950"
},
"Title": {
"S": "First Episode"
}
}
},
{
"M": {
"Id": {
"S": "c477e288-37d1-4d7f-9104-9b72ed304808"
},
"Timestamp": {
"N": "636830978394669182"
},
"Title": {
"S": "Second Episode"
}
}
}
]
},
"Id": {
"S": "466d8a18-f998-49b3-a299-90b508dba045"
},
"Rate": {
"N": "9.3"
},
"Timestamp": {
"N": "636830978390056778"
},
"Title": {
"S": "Vikings"
}
}
Идентификатор: HASH | Ключ раздела
Отметка времени: ДИАПАЗОН | Ключ сортировки
И я хочу получить вложенный объект «Episode First» TVShow по идентификатору [Episode].
Я пробовал много способов получить данные. Но не сработало. Это мои источники. Эти документы не актуальны. Я использую пакет nuget AWSSDK.DynamoDBv2 версии 3.3.16.5.
Запрос таблиц и индексов: .NET
https://docs.aws.amazon.com/en_us/amazo ... rying.html
Сканирование таблиц и индексов: .NET
https://docs.aws.amazon.com/en_us/amazo ... nning.html
Код: Выделить всё
// I can get the TVShow by Id with this.
var scanRequest = new ScanRequest(nameof(TVShow))
{
FilterExpression = "Id = :Id",
ExpressionAttributeValues = new Dictionary
{
{":Id", new AttributeValue {S = "466d8a18-f998-49b3-a299-90b508dba045"}}
}
};
// In the document scan is not async but in v3.3.16.5 scan is async.
var scanResponse = await Client.ScanAsync(scanRequest);
// I can get the TVShow by Id with this.
var queryRequest = new QueryRequest(nameof(TVShow))
{
KeyConditionExpression = "Id = :Id",
ExpressionAttributeValues = new Dictionary
{
{":Id", new AttributeValue {S = "466d8a18-f998-49b3-a299-90b508dba045"}}
}
};
// In the document query is not async but in v3.3.16.5 query is async.
var queryResponse = await Client.QueryAsync(queryRequest);
Подробнее здесь: https://stackoverflow.com/questions/541 ... ject-by-id
Мобильная версия