我希望能够为我的用户提供一个更新方法,该方法将根据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组合的实体。
如果PK,RK不存在,我如何组织我的代码,使之只进行更新而不添加?
发布于 2012-03-11 13:53:15
当你试图更新一个不存在的项目时,不要去捕捉一个错误(我相信breischl在如何避免这种情况上是正确的),最简单的做法是先运行一个查询来检查它是否确实存在。
https://stackoverflow.com/questions/9637955
复制相似问题