Невозможно сохранить Nullable <bool>в таблице Azure, когда значение равно NULL - PullRequest
1 голос
/ 16 января 2012

Например, у меня есть bool? Status в c #

когда Status = true/false, он может сохранить в таблице Azure, без проблем

Но когда Stats = null, он не может сохранить ( update ) в таблице Azure, столбец все еще сохраняет старое значение

Полагаю, это возможно, потому что в таблице Azure нет схемы, но каково решение?

Как сохранить ноль в перезаписать исходное значение?

РЕДАКТИРОВАТЬ, код

данные как это:

public class someEntity : TableServiceEntity
{
    public bool? Status { get; set; }
}

обновить как это:

tableContext.AttachTo("sometable", someEntity);
tableContext.UpdateObject(someEntity);
tableContext.SaveChangesWithRetries(SaveChangesOptions.Batch & SaveChangesOptions.ReplaceOnUpdate);

(я пробовал AttachTo с "*" в качестве etag, пробовал удалить SaveChangesOptions, ни одна не работает)

Извините за мою глупость, должен быть этот код, тогда работает

tableContext.SaveChangesWithRetries(SaveChangesOptions.Batch | SaveChangesOptions.ReplaceOnUpdate);

1 Ответ

4 голосов
/ 17 января 2012

Как подсказал @Matthew, я поставил ответ здесь

очень просто, используйте:

tableContext.SaveChangesWithRetries(SaveChangesOptions.Batch | SaveChangesOptions.ReplaceOnUpdate);

Для нескольких вариантов используйте | (or), а не & (and). Причина

SaveChangesOptions.ReplaceOnUpdate = true означает, что весь объект будет заменен SaveChangesOptions.ReplaceOnUpdate = false, означает слияние, старые данные будут сохранены

...