例如,我有一个 bool? C# 中的状态
当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);
最佳答案
正如@Matthew建议的,我把答案放在这里
非常简单,使用:
tableContext.SaveChangesWithRetries(SaveChangesOptions.Batch | SaveChangesOptions.ReplaceOnUpdate);
对于多个选项,请使用 | (或)
,而不是&(和)
。 Reason
SaveChangesOptions.ReplaceOnUpdate = true
表示整个实体将被替换
SaveChangesOptions.ReplaceOnUpdate = false
,表示合并,旧数据将保留
关于c# - 当 Nullable<bool> 为 Null 时,无法将其保存到 Azure 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8876743/