2016-03-18 33 views
2

我試圖創建一個通用Windows應用程序,它使用從Azure移動應用程序獲取的數據的脫機副本。Azure移動應用程序脫機SQLite同步掛起初始化

我創建了一個引用Microsoft.Azure.Mobile.Client.SQLiteStore和SQLite.Net.Async-PCL NuGet包的可移植項目。

我有試圖與下面的代碼初始化離線數據庫DataService類:

if (!_dataSyncClient.SyncContext.IsInitialized) 
      { 
       _store = new MobileServiceSQLiteStore(AppConstants.SqliteDatabaseFile); 
       _store.DefineTable<Language>(); 

       var syncCtx = _dataSyncClient.SyncContext; 

       await syncCtx.InitializeAsync(_store); 
      } 

但是,當我嘗試調用從西澳大學這段代碼它掛在InitializeAsync方法,沒有例外,沒有什麼。有一件事我注意到脫機SQLite是用一個空語言表和一些空的系統表(__config,__erros,__operations)創建的。

UWA引用了Microsoft.Azure.Mobile.Client.SQLiteStore NuGet包和通用應用平臺dll版本3.10.2.0的SQLite參考。

+0

我想知道它是否與移動服務和移動應用程序的區別有關,我發現的大多數示例都是針對移動服務的。 – Erwin

+0

看起來像不錯的代碼 - 確保您使用的是Microsoft.Azure.Mobile.Client和Microsoft.Azure.Mobile.Client.SQLiteStore最新的NuGet包(v2.0.x) –

回答

2

移動應用程序SQLite商店類是而不是與SQLite.NET兼容,因爲它使用SQLitePCL。您可能試圖從兩個庫中訪問相同的SQLite數據庫,並導致該問題。

如果SQLite.NET支持很重要,那麼可以使用我們的起點編寫本地存儲實現:Mobile Apps SQLiteStore on GitHub。該設計足夠靈活,可讓您替換任何本地商店實施。請參閱https://github.com/Azure/azure-mobile-apps-quickstarts/tree/master/client/windows-uwp-cs。該項目有關於如何添加脫機同步支持的說明。您需要添加UWP SQLite VSIX package並添加對Microsoft.Azure.Mobile.Client.SQLiteStore的引用。

+0

謝謝,如果不可能將SQLite.NET和移動應用程序SQLite商店,我如何使用DropTable或某種事務操作? – Erwin

+0

更新答案。 –

+0

您好我正嘗試安裝Microsoft.Azure.Mobile.Client.SQLiteStore nuget 3.0.3到Xamarin解決方案中的UWP應用程序,但顯然版本3+不兼容,因爲我能夠將它安裝到可移植項目,到iOS, Droid但不適用於UWP。 –

相關問題