Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DynamoDB和.NET对象持久性模型,使用';添加';值而不是覆盖_C#_.net_Amazon Dynamodb_Object Persistence - Fatal编程技术网

C# DynamoDB和.NET对象持久性模型,使用';添加';值而不是覆盖

C# DynamoDB和.NET对象持久性模型,使用';添加';值而不是覆盖,c#,.net,amazon-dynamodb,object-persistence,C#,.net,Amazon Dynamodb,Object Persistence,我有几个DynamoDB表,它们将充当聚合数据存储(我们正在动态“汇总”报告)。我希望使用.NET:Object持久性模型(在该模型中,您可以构建带有注释的类)。问题是DynamoDBContext对象似乎只有一个“Save”方法,而没有“Save and Add values”方法。因为从Dynamo检索对象和再次写入该行之间的时间可能比一个小数目还要长,并且可能有多个线程试图递增,所以我不希望在.NET代码中递增。相反,我需要.ADD属性。但我不确定是否可以使用对象持久性模型指定属性操作。有

我有几个DynamoDB表,它们将充当聚合数据存储(我们正在动态“汇总”报告)。我希望使用.NET:Object持久性模型(在该模型中,您可以构建带有注释的类)。问题是DynamoDBContext对象似乎只有一个“Save”方法,而没有“Save and Add values”方法。因为从Dynamo检索对象和再次写入该行之间的时间可能比一个小数目还要长,并且可能有多个线程试图递增,所以我不希望在.NET代码中递增。相反,我需要.ADD属性。但我不确定是否可以使用对象持久性模型指定属性操作。有人知道这是否可能吗

[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; }
[DynamoDBTable(“my_表”)]
公共类MyRecord
{
[DynamoDBHashKey(AttributeName=“my_id”)]
公共字符串MyID{get;set;}
/// 
///用于从DynamoDB查找唯一数据的区域和国家字段哈希
/// 
[DynamoDBRangeKey(AttributeName=“location”)]
公共字符串位置{get;set;}
[发电机性能(“我的计数”)]
public int MyCount{get;set;}

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

因为我在这方面找不到大量资源,我想e决定为此编写我自己的扩展方法。它并不完美,因为您无法从上下文中发现DBClient对象,因为它不是公共的,所以您必须将它传入

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