0

我目前正面臨着這樣一個問題:我正在使用Xamarin和Azure應用服務移動應用作爲雲端後端構建應用。問題是,如果我從Azure中託管的數據庫的相應表中刪除一些數據,移動設備上的下一個PullAsync調用將失敗,因爲它嘗試請求刪除的記錄。有什麼辦法可以同步刪除Azure數據庫中首先發生的記錄,然後將其拖入設備?Azure應用服務移動應用數據庫同步失敗,如果數據被刪除

另一種方式平穩運行:如果我從設備中刪除記錄,則會在Azure數據庫中刪除相應的記錄。

回答

1

您必須使用軟刪除,方法是在您的服務器上爲每個需要它的TableController啓用。這裏的示例爲TodoItemTableController

protected override void Initialize(HttpControllerContext controllerContext) 
{ 
    base.Initialize(controllerContext); 
    MobileServiceContext context = new MobileServiceContext(); 
    DomainManager = new EntityDomainManager<TodoItem>(context, Request, enableSoftDelete: true); 
} 

更多信息here

+0

昨天我想的方式完全一樣,但希望有真正刪除記錄的解決方案。好吧,我們將其標記爲答案,謝謝! –

+0

我還有一個與此相關的問題:在EntityData類中,我找到了一個名爲「已刪除」的現有屬性,我認爲它可以用於軟刪除。問題是,當我在移動客戶端上更新它的值時,該值不會被推送到Azure,並且下一個拉將其重寫爲原始值false。有沒有什麼方法可以使用它,或者我應該創建一些自定義列? –

+0

我剛剛發現的是,由於某種原因,UpdateAsync不會將「已刪除」記錄寫入本地設備存儲,這就是爲什麼它不會同步到Azure。無法找到解決此問題的方法 –

相關問題