为什么不从 DynamoDb 字符串属性列表中删除最后一个字符串更新表中的项目

DynamoDB .NET 映射 SDK 不会将空列表保留到表中。实际上,这意味着从列表中删除最后一次并尝试将项目保存到表中将导致属性不变(仍然有最后一个项目)。如何将属性正确更新为空列表?


这是映射类的相关部分:


[DynamoDBTable("x.y.groups")]

public class Group : GroupListItem

{

    public List<string> tokens { get; set; }

}

这是更新该字段的代码:


group.tokens = group.accounts.Select(a => a.token).ToList();

await Context.SaveAsync(group);

如果 group.accounts 为空(删除了最后一项),事件虽然 group.tokens 是一个空列表,但 DynamoDB 表中的属性将不会更新,并且列表中仍然有一个项目。


皈依舞
浏览 213回答 1
1回答

慕盖茨4494581

这似乎是映射 SDK 中的一个错误。为了解决这个错误,我在下面添加了 if 语句:group.tokens = group.accounts.Select(a => a.token).ToList();if (group.tokens.Count == 0) group.tokens = null;await Context.SaveAsync(group);这将导致删除列表属性,并在从表中读取项目时映射到空列表。
打开App,查看更多内容
随时随地看视频慕课网APP