在dynamodb中,您可以进行条件写入(请参阅here和here)。
现在,我正在使用ServiceStack.Aws,我想知道如何实现这一点(条件写入)
我的代码看起来像这样
var awsDb = new AmazonDynamoDBClient();
var db = new PocoDynamo(awsDb);
db.UpdateItem<Country>(new Country{CountryId = 1, Name = "New Name"});
我的模型看起来像这样
[Alias("TABLE-NAME")]
public class Country
{
[AutoIncrement]
public int CountryId { get; set; }
public string Name { get; set; }
public string Culture { get; set; }
public int State { get; set; }
}
但是我想只有在有#34;状态&#34;时才更新这个项目。物业在0
答案 0 :(得分:1)
我刚刚在this commit中添加了Typed UpdateExpression支持,它允许您使用表达式构建器构建一个可以使用它的更新查询:
var q = db.UpdateExpression<Country>(1)
.Set(() => new Country { Name = "New Name" })
.Condition(x => x.State == 0);
bool wasUpdated = db.Update(q);
就像PocoDynamo的查询和扫描表达式构建器一样,UpdateExpression<T>
继承了AWS的UpdateItemRequest
,您可以在发送之前使用它来进一步自定义UpdateItemRequest
。此外,当PocoDynamo未涵盖某项功能时,您可以使用db.DynamoDb
访问AWS的基础Dynamo DB客户端。
新的UpdateExpression<T>
构建器可从v4.0.61获得,现在是available on MyGet。