当Null </bool>时,无法将Nullable <bool>保存到Azure表

时间:2012-01-16 07:07:53

标签: c# azure boolean nullable azure-table-storage

例如,我在c#

中有一个bool? Status

Status = true/false时,它可以保存到Azure表,没问题

但是当Stats = null无法保存(更新)到Azure表时,该列仍保留旧值

我想这可能是因为Azure表没有方案,但解决方案是什么?

如何将 null 保存到覆盖原始值?

编辑,代码

这样的数据:

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 个答案:

答案 0 :(得分:4)

正如@Matthew所说,我把答案放在这里

非常简单,使用:

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

对于多个选项,请使用| (or),而不是& (and)Reason

SaveChangesOptions.ReplaceOnUpdate = true表示将替换整个实体 SaveChangesOptions.ReplaceOnUpdate = false表示合并,旧数据将保留