gpt4 book ai didi

c# - DynamoDB 和 .NET 对象持久性模型,使用 'ADD' 值而不是覆盖

转载 作者:行者123 更新时间:2023-11-30 13:00:07 25 4
gpt4 key购买 nike

我有几个 DynamoDB 表将充当聚合数据存储(我们正在动态“汇总”报告)。我希望使用 .NET:对象持久性模型(您可以在其中构建带有注释的类)。问题是 DynamoDBContext 对象似乎只有“保存”方法,而不是“保存和添加值”方法。因为从 Dynamo 检索对象和再次写入该行的时间之间的时间可能比微不足道的时间要长,而且可能有多个线程试图递增,所以我不希望递增在 .网络代码。相反,我想要 .ADD AttributeAction。但我不确定您是否可以使用对象持久性模型指定属性操作。有谁知道这是否可能?

[DynamoDBTable("my_table")]
public class MyRecord
{
[DynamoDBHashKey(AttributeName = "my_id")]
public string MyID{ get; set; }

/// <summary>
/// Hash of the Region and Country fields for unique data lookup from DynamoDB
/// </summary>
[DynamoDBRangeKey(AttributeName = "location")]
public string Location { get; set; }

[DynamoDBProperty("my_count")]
public int MyCount{ get; set; }

上面是一个示例对象。这个想法是 MyID 获得几个代表用户操作的“计数”。我不想先获取 mycount 然后在 .NET 中加 1 然后重新推送。我宁愿运行“添加”命令并始终将“1”发送到 mycount 并让 dynamo 进行数学计算以保证正确性。

最佳答案

由于我没有找到大量这方面的资源,所以我决定为此编写自己的扩展方法。它并不完美,因为您无法从上下文中推断出 DBClient 对象,因为它不是公开的,因此您必须将其传入。

https://gist.github.com/edgiardina/9815520

但是,我不会回答这个问题,因为我不知道是否有更简单的方法来执行此操作。

关于c# - DynamoDB 和 .NET 对象持久性模型,使用 'ADD' 值而不是覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22692531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com