【发布时间】:2012-02-11 04:49:57
【问题描述】:
例如,我在 c# 中有一个bool? Status
Status = true/false时,可以保存到Azure表,没问题
但是当Stats = null时,无法保存(update)到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);
【问题讨论】:
-
数据库中的字段是否允许为空?
-
我相信是的,如果初始值为null,那么您仍然可以保存。但是一旦你保存为真/假,你就不能再设置回null了。
-
你能发布你的代码吗?这很可能是 Nullable
默认值为 null 的问题,并且 API 在没有显式更新/更新标志的情况下忽略默认值。 -
@EricYin 既然你已经自己解决了这个问题,我建议你删除你最近的更新并将其作为答案发布。
标签: c# azure boolean nullable azure-table-storage