Sterling DB Windows mobile 10支持

时间:2015-10-29 19:03:09

标签: silverlight windows-phone-8 sterling-db

我在商店里有一个WP8.0 Silverlight应用程序。它使用SterlingPhone作为DB。我在Windows Mobile 10 Insider预览版(v10.0.10536.1004)中下载了我的应用程序,似乎在退出应用程序后删除了数据。

我正在使用IsolatedStorageDriver:

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

有人遇到过这种情况吗?我知道Sterling很老了,但我认为它应该继续在WM10上工作。

如果我必须更改为另一个数据库引擎,我会很感激建议(由于嵌套对象,我的数据模型使得使用Sqlite非常困难。)

编辑: 显然,Sterling无法找到现有数据库,因此每次重新启动应用程序时都会重新创建它。

Isolated storage screenshot

1 个答案:

答案 0 :(得分:0)

对于发现此帖有同样问题的任何人,问题在于Windows 10 Mobile上string.GetHashCode的更改行为。

Sterling在数据库的路径中使用数据库名称的哈希码。在Windows 10 Mobile上,行为已更改,每次重新启动应用程序时,都会计算不同的哈希值,并且找不到前一个数据库的路径更改。

要让您的应用再次运行,请从CodePlex获取SterlingDB代码并更改PathProvider类中的代码,在GetDatabasePath方法中,然后重新编译您的应用。您可以添加一个检查以查看您是否在WM10上运行,以便WP8上的用户继续使用旧数据库。

GitHub上较新版本的SterlingDB似乎不再使用哈希码,所以也应继续使用。