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 表中的属性将不会更新,并且列表中仍然有一个项目。
1 回答

慕盖茨4494581
TA贡献1850条经验 获得超11个赞
这似乎是映射 SDK 中的一个错误。为了解决这个错误,我在下面添加了 if 语句:
group.tokens = group.accounts.Select(a => a.token).ToList();
if (group.tokens.Count == 0) group.tokens = null;
await Context.SaveAsync(group);
这将导致删除列表属性,并在从表中读取项目时映射到空列表。
- 1 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消