2015-10-29 128 views
0

我在商店中有一個WP8.0 Silverlight應用程序。它使用SterlingPhone作爲數據庫。我在Windows Mobile 10內幕預覽版(v10.0.10536.1004)中下載了我的應用程序,似乎在我退出應用程序後數據被刪除。Sterling DB Windows mobile 10支持

我使用IsolatedStorageDriver:

Database = _engine.SterlingDatabase.RegisterDatabase<ItemsDatabaseInstance>(new IsolatedStorageDriver()); 

有沒有人遇到這種情況?我知道斯特林很老,但我認爲它應該繼續在WM10上工作。

如果我必須更改爲另一個數據庫引擎,我會很感激建議(由於嵌套對象,我的數據模型使得使用Sqlite非常困難)。

編輯: 顯然,Sterling無法找到現有的數據庫,因此每次重新啓動應用程序時都要重新創建它。

Isolated storage screenshot

+0

你能解決這個問題嗎?我與Windows 10 Mobile上的WP8.0應用程序有同樣的問題。 –

回答

0

對於任何人誰發現這個職位有相同的問題,問題的關鍵在於改變行爲string.GetHashCode在Windows 10移動。

Sterling在數據庫的路徑中使用數據庫名稱的哈希碼。在Windows 10 Mobile上,行爲發生了變化,每次重新啓動應用程序時,都會計算出不同的散列值,並且找不到路徑更改爲以前的數據庫。

要讓您的應用程序再次運行,請從CodePlex獲取SterlingDB代碼,然後在GetDatabasePath方法中更改PathProvider類中的代碼,然後重新編譯您的應用程序。您可以添加一個檢查來查看您是否在WM10上運行,以便WP8上的用戶繼續使用舊數據庫。

GitHub上較新版本的SterlingDB似乎不再使用散列代碼,所以也應該繼續工作。