我希望能够为我的用户提供UPDATE方法,该方法将更新他们基于RowKey指定的记录,但如果他们传入的RowKey不存在则不会添加它。
我的理由是,如果他们错误地发送了无效的RowKey,我不希望他们在不知情的情况下以新实体结束,而不是首先更新他们想要更新的实体。
以下是我所拥有的代码的要点(但如果实体不存在则添加/插入实体):
' p below is the entity obj (Inherits from TableServiceEntity)
' PartitionKey and RowKey are set to values of entity to update
MyBase.AttachTo(_tableName, p)
MyBase.UpdateObject(p)
MyBase.SaveChangesWithRetries(Services.Client.SaveChangesWithOptions.Batch)
我的问题是,我希望在执行SaveChanges时抛出一些异常,并且找不到匹配PK和RK的实体。而是添加具有新PK,RK组合的实体。
我如何构建我的代码,以便只有UPDATE才能完成,如果PK,RK不存在则没有ADD?
答案 0 :(得分:0)
我相信如果你调用AttachTo()的三个参数版本,你将获得所需的行为。
MyBase.AttachTo(_tableName, p, "*");
但我还没有尝试过。
答案 1 :(得分:0)
当您尝试更新并且不存在的项目时(我相信breischl关于如何避免这种情况)是正确的,而不是捕获错误,最简单的方法是运行查询以检查它是否确实存在第一