在dynamodb中,您可以执行条件写入(请参阅这里和这里)。
现在,我正在使用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; }
}但是,只有在0中有"state“属性时,我才想更新此项。
发布于 2016-06-23 19:28:42
我刚刚在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客户机。
新的UpdateExpression<T>构建器可以从v4.0.61 (即现在的可在MyGet上获得 )中获得。
https://stackoverflow.com/questions/37995090
复制相似问题