Выражение DynamoDB для обновления, если элемент не существует или другое поле равно определенному значению - PullRequest
0 голосов
/ 02 июля 2018

Я получаю следующую ошибку при попытке выполнить условное обновление:

Неверное выражение условия: синтаксическая ошибка; токен: "-", рядом: "PageRouteee1181aa-8035"

У меня есть следующий класс:

public class RestaurantPageRouteItem
{
    [DynamoDBHashKey]
    public string PageRoute { get; set; }

    public string RestaurantId { get; set; }
}

И я создаю следующее выражение:

new Expression
{
    ExpressionStatement = $"attribute_not_exists({item.PageRoute}) OR {item.RestaurantId} = :restaurantid",
    ExpressionAttributeValues =
    {
        [":restaurantid"] = item.RestaurantId
    }
}

1 Ответ

0 голосов
/ 10 июля 2018

Удалось придумать следующее:

new Expression {
 ExpressionStatement =
  "(attribute_not_exists(#ID) OR :id = #ID) OR " +
  "(attribute_not_exists(PageRoute))",
  ExpressionAttributeValues = {
   [":id"] = item.RestaurantId
  },
  ExpressionAttributeNames = {
   ["#ID"] = "RestaurantId"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...