Почему не удаляется последняя строка из атрибута списка строк DynamoDb Обновление элемента в таблице - PullRequest
0 голосов
/ 31 августа 2018

SDK для сопоставления DynamoDB .NET не сохранит пустой список в таблице. На практике это означает, что удаление последнего раза из списка и попытка сохранить элемент в таблице приведет к тому, что атрибут останется неизменным (все еще имеет последний элемент). Как правильно обновить атрибут до пустого списка?

Вот соответствующая часть класса отображения:

[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 Ответ

0 голосов
/ 31 августа 2018

Кажется, это ошибка в картографическом SDK. Чтобы обойти эту ошибку, я добавил оператор if ниже:

group.tokens = group.accounts.Select(a => a.token).ToList();
if (group.tokens.Count == 0) group.tokens = null;
await Context.SaveAsync(group);

Это приведет к удалению атрибута списка и сопоставлению с пустым списком при считывании элемента из таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...