例如,我在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);
答案 0 :(得分:4)
正如@Matthew所说,我把答案放在这里
非常简单,使用:
tableContext.SaveChangesWithRetries(SaveChangesOptions.Batch | SaveChangesOptions.ReplaceOnUpdate);
对于多个选项,请使用| (or)
,而不是& (and)
。 Reason
SaveChangesOptions.ReplaceOnUpdate = true
表示将替换整个实体
SaveChangesOptions.ReplaceOnUpdate = false
表示合并,旧数据将保留