更新Windows Phone 8.1的本地数据库应用程序(通用)

贾瓦哈尔

我在Windows Phone(通用)应用程序中使用本地数据库(SQLite)。我需要为我的应用推送更新。

我的问题是“我做了一点模式更改(向数据库添加了一个额外的字段)。我正在使用的包装程序将处理此更改(https://github.com/praeclarum/sqlite-net)。还是我需要编写任何额外的代码来更新架构而不丢失数据。

我找到了这个链接但这是否适用于使用上述SQLite包装器的Windows Phone通用应用程序。

伊戈尔·拉里奇(Igor Ralic)

这取决于您正在执行的更新类型。

如果您查看正在使用的库的代码,则会注意到该CreateTable方法通过调用进行迁移MigrateTableMigrateTable方法只是检查是否需要添加任何新列,然后将它们添加到表中。

foreach (var p in map.Columns) {
    var found = false;
    foreach (var c in existingCols) {
        found = (string.Compare (p.Name, c.Name, StringComparison.OrdinalIgnoreCase) == 0);
//and so on

因此,如果您只想添加新列而不必担心键和约束,那么库应该将其涵盖在内。毕竟,您可以通过创建初始数据库和所有表来进行轻松测试,然后模拟更新。

现在,对于更复杂的场景,没有DatabaseSchemaUpdaterLINQ to SQL那样的东西,因此您必须在数据库中使用另一个表(例如)_version,该表将保存当前数据库版本,然后您将执行此操作模式会根据当前版本以及您要将数据库更新到的版本进行更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Windows Phone 7.5和8的更新应用程序

在Windows Phone 8中更新应用程序时数据将如何处理

Windows Phone 8新闻应用程序

Windows Phone 8.1应用程序与数据库连接

通用Windows平台是否替代了Windows 8和Windows Phone应用程序的WinRT?

Windows Phone 8应用提交

Windows Phone 8中应用程序栏的本地化

Phonegap + jQuery Mobile Windows Phone 8应用程序缓慢加载本地HTML文件

Windows Phone 7,8支持哪些数据库?

Windows Phone 8 SQLite数据库升级

任务延迟不等待(Windows Phone 8应用程序)

更改Windows Phone 8应用程序的背景颜色

Live Messenger应用程序Windows Phone 8

在Windows Phone 8应用程序中触发电话

在Ubuntu中开发Windows Phone 8应用程序的IDE

Windows Phone 8显示phoneCallTask后,应用程序关闭

Windows Phone 8中的应用程序栏

从Windows Phone 8上的SMS自动启动应用程序

Windows Phone 8单元测试应用程序FileNotFoundException

Windows Phone 8-部署应用程序超时错误

Windows Phone 8获得前台应用程序

UI Windows Phone 8上的异步更新

在Windows Phone 8中更新图像控件

适用于多种环境的应用程序(Windows Phone 8,Windows Phone 8.1,Windows 8,Windows 7,Windows XP)

在Windows Phone 8.1上运行Windows Phone 8应用

Windows Phone 8的Windows Phone应用程序分析-错误启动

Windows Phone 8应用程序可以在Windows Phone 8.1上运行吗

在 Windows Phone 8.1 应用程序中连接到 SQLite 数据库时出错

适用于通用Windows应用程序的本地数据库