In DynamoDB, wenn Limit Eigenschaft wurde eingerichtet, DynamoDB eine „letzte ausgewertet Taste“ zurück, die für die Paginierung verwendet wird (siehe here)ServiceStack.Aws unterstützt "zuletzt ausgewerteten Schlüssel" auf DynamoDB?
Ich möchte wissen, ob ServiceStack.Aws diese Funktion unterstützen (für .NET C# -Version), oder wenn ich brauche, direkt dem AWSSDK Client
Dank
EDIT verwenden: ich eine Server-Seite Paginierung implementieren möchten. Wie kann man dies erreichen PocoDynamo? Mein Code wie dieser
public IList<Company> GetCompanies(string shortName, ref string lastKeyEvaluated)
{
IList<Company> data = null;
using (AmazonDynamoDBClient awsDynamoDbClient = new AmazonDynamoDBClient())
{
IPocoDynamo dbDynamo = new PocoDynamo(awsDynamoDbClient);
var queryExpression = dbDynamo.FromQuery<Company>(c => c.ShortName == shortName);
data = dbDynamo.Query(queryExpression, 10); //How can i pass lastEvaluatedKey?
var awsdkClient = dbDynamo.DynamoDb; //Can i get last evaluated key from original AWSDK client?
}
return data;
}
EDIT 2 sieht: In einigen Antworten, sagten sie mir, dass ich brauche einen Delegaten Parameter zu verwenden. Es scheint jedoch, dass dieser Delegat ein QueryResponse-Objekt erwartet und ein IEnumerable zurückgibt. Von QueryResponse weiß ich, dass ich LastEvaluatedKey
erhalten kann, aber wie dieser Delegat den letzten ausgewerteten Schlüssel zurückgeben kann? Es ist möglich zu tun?
Dank
Dank
Ich möchte eine serverseitige Paginierung implementieren. Ich kann in PocoDynamo keine Methode finden, die einen zuletzt ausgewerteten Schlüssel akzeptiert. Auf der anderen Seite kann keine Methode gefunden werden, die den zuletzt ausgewerteten Schlüssel abrufen kann. Wäre super eine Überladungsmethode, die den zuletzt ausgewerteten Schlüssel akzeptiert, und eine Möglichkeit, diesen Wert ebenfalls abzurufen. –
@VladimirVenegas PocoDynamo APIs sind verwaltete Abfragen, die sich um die Paginierung hinter den Kulissen kümmern. Aber die Scan und Query Expressions erbt von ScanRequest/QueryRequest, die 'ExclusiveStartKey' enthält, wo der LastEvaluatedKey gesetzt werden kann. Wenn Sie Ihre eigene Paginierung übernehmen und bearbeiten möchten, können Sie auf den AWS-zugrunde liegenden 'db.DynamoDb'-Client und auf [eigene Paginierung] zugreifen (https://github.com/ServiceStack/ServiceStack.Aws/blob/1083a58932869be13b2679ef9bef36e7ed1b1bfb/tests /ServiceStack.Aws.DynamoDbTests/UseCases/DynamoDbTodoExample.cs#L202). – mythz
@VladimirVenegas Die Abfrage-/Abfrage-APIs, die einen 'Func <,>' Callback akzeptieren, ermöglichen Ihnen den Zugriff auf die Antwort, die den' LastEvaluatedKey' enthält. Das Hinzufügen zusätzlicher APIs, die LastEvaluatedKey akzeptieren, wäre verwirrend. Sie würden nicht wissen, wie das Verhalten der API aussehen würde. – mythz