我最近意識到DocumentDB通過ReplaceDocumentAsync支持獨立更新操作。DocumentDB替換不工作
我用Replace操作替換了下面的Upsert操作。
var result = _client
.UpsertDocumentAsync(_collectionUri, docObject)
.Result;
所以這是現在:
var result = _client
.ReplaceDocumentAsnyc(_collectionUri, docObject)
.Result;
不過,現在我得到異常:
Microsoft.Azure.Documents.BadRequestException:文檔的ResourceType是意想不到的。 ActivityId:b1b2fd71-3029-4d0d-bd5d-87d8d0a2fc95
不知道爲什麼,UPSERT和替換是同樣的和對象是,UPSERT工作一樣,所以我希望它沒有問題工作。
所有幫助表示讚賞。
感謝
更新:試過這種使用SelfLink的方法來實現,它適用於更換,但selflink不工作的Upsert。這種行爲相當混亂。我不喜歡我必須使用字符串連接在代碼中構建自連接。
什麼讓我爲創建/替換/的Upsert /和Delete之間的行爲差異。具有相同腳印和相關名稱的方法表現完全不同。對此非常失望。 –
你已經習慣了很快。 :-) –
我會說這實際上是直觀的。在創建中,db中沒有記錄,因此不需要'Id'來指定足夠的信息來執行操作。但更新需要參考您嘗試更新/替換的記錄。因此,在這種情況下,您不想構建集合uri,而是構建一個uri文檔。 –