Azure的離線同步API不提供完整的ORM,但確實提供了基本的類到表映射。在Azure的離線同步API中初始化類到表的映射
的sample project的TodoItemManager
有這樣的:
store.DefineTable<TodoItem>();
這應該僅在移動應用的第一次運行完成,或者是它的安全每次啓動時都會打電話?因此,它是否執行「創建如果不存在」類操作?
而且,如果類的模式發生變化呢?
Azure的離線同步API不提供完整的ORM,但確實提供了基本的類到表映射。在Azure的離線同步API中初始化類到表的映射
的sample project的TodoItemManager
有這樣的:
store.DefineTable<TodoItem>();
這應該僅在移動應用的第一次運行完成,或者是它的安全每次啓動時都會打電話?因此,它是否執行「創建如果不存在」類操作?
而且,如果類的模式發生變化呢?
Azure的移動應用做的相當於「創建如果不存在」您的SQLite數據庫 - 它是安全的,每次你的應用程序開始調用它。
Data Sync服務僅同步數據。雖然它能夠在配置期間創建在成員數據庫上同步的對應表,但它僅創建最低限度以便能夠進行同步。它不會創建或同步源數據庫中的存儲過程,觸發器或視圖。如果您希望目標數據庫成員從源中獲得數據庫模式的完全保真副本,則可以編寫源數據庫的腳本並首先在目標數據庫成員上運行該腳本。
此外,如果您更改成員數據庫的架構,這些更改將不會被服務拾取和同步。只有同步組中明確選擇作爲數據集一部分的列纔會同步。如果由於模式更改而要包含或刪除列,則必須修改同步組。
https://jtabadero.wordpress.com/2012/08/23/things-you-need-to-know-about-sql-data-sync-service/
問題是關於Azure移動應用程序中的脫機同步,而不是數據同步服務。 –
是在azure移動服務中,sync選項用於本地存儲(sqlite)和SQL azure之間的數據。 – Aravind
如果我的類改變了,API會自動更新映射表的模式嗎?換句話說,我們是否有正式的方式來處理移民問題? –
@hbob如果您添加列,SDK會將它們添加到本地商店。但是,這不是真正的遷移支持 - 例如,新列將具有空值,並且SDK不會刪除列。要獲得真正的遷移支持,您必須實施自己的本地商店圖層。請參閱https://github.com/Azure/azure-mobile-apps-net-client/blob/master/src/Microsoft.WindowsAzure.MobileServices.SQLiteStore/MobileServiceSQLiteStore.cs#L487。 –