Sterling DB Windows 移动 10 支持
Sterling DB Windows mobile 10 support
我商店里有一个 WP8.0 Silverlight 应用程序。它使用 SterlingPhone 作为数据库。我在 Windows Mobile 10 Insider Preview 版本 (v10.0.10536.1004) 中下载了我的应用程序,但似乎在我退出应用程序后删除了数据。
我正在使用 IsolatedStorageDriver:
Database = _engine.SterlingDatabase.RegisterDatabase<ItemsDatabaseInstance>(new IsolatedStorageDriver());
有人遇到过这种情况吗?我知道 Sterling 已经很老了,但我认为它应该继续在 WM10 上工作。
万一我不得不换到另一个数据库引擎,我会很感激建议(由于嵌套对象,我的数据模型使得使用 Sqlite 变得非常困难)。
编辑:
显然,Sterling 无法找到现有的数据库,因此每次重新启动应用程序时都会重新创建它。
对于发现此 post 具有相同问题的任何人,问题在于 string.GetHashCode 在 Windows 10 Mobile 上的行为发生了变化。
Sterling 在数据库路径中使用数据库名称的哈希码。在 Windows 10 Mobile 上,行为发生了变化,每次重新启动应用程序时都会计算不同的哈希值,并且找不到以前数据库的路径更改。
要让您的应用程序再次运行,请从 CodePlex 获取 SterlingDB 代码并更改 PathProvider class 中的代码,在 GetDatabasePath 方法中,然后重新编译您的应用程序。您可以添加检查以查看您是否在 WM10 上 运行,以便 WP8 上的用户继续使用旧数据库。
GitHub 上较新版本的 SterlingDB 似乎不再使用哈希码,因此也应该继续工作。
我商店里有一个 WP8.0 Silverlight 应用程序。它使用 SterlingPhone 作为数据库。我在 Windows Mobile 10 Insider Preview 版本 (v10.0.10536.1004) 中下载了我的应用程序,但似乎在我退出应用程序后删除了数据。
我正在使用 IsolatedStorageDriver:
Database = _engine.SterlingDatabase.RegisterDatabase<ItemsDatabaseInstance>(new IsolatedStorageDriver());
有人遇到过这种情况吗?我知道 Sterling 已经很老了,但我认为它应该继续在 WM10 上工作。
万一我不得不换到另一个数据库引擎,我会很感激建议(由于嵌套对象,我的数据模型使得使用 Sqlite 变得非常困难)。
编辑: 显然,Sterling 无法找到现有的数据库,因此每次重新启动应用程序时都会重新创建它。
对于发现此 post 具有相同问题的任何人,问题在于 string.GetHashCode 在 Windows 10 Mobile 上的行为发生了变化。
Sterling 在数据库路径中使用数据库名称的哈希码。在 Windows 10 Mobile 上,行为发生了变化,每次重新启动应用程序时都会计算不同的哈希值,并且找不到以前数据库的路径更改。
要让您的应用程序再次运行,请从 CodePlex 获取 SterlingDB 代码并更改 PathProvider class 中的代码,在 GetDatabasePath 方法中,然后重新编译您的应用程序。您可以添加检查以查看您是否在 WM10 上 运行,以便 WP8 上的用户继续使用旧数据库。
GitHub 上较新版本的 SterlingDB 似乎不再使用哈希码,因此也应该继续工作。