为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
皈依舞 2021-12-25 18:43:14
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);

这将导致删除列表属性,并在从表中读取项目时映射到空列表。


查看完整回答
反对 回复 2021-12-25
  • 1 回答
  • 0 关注
  • 212 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号