【问题标题】:Migrate sqlite database from android studio app to Xamarin.Forms app将 sqlite 数据库从 android studio 应用程序迁移到 Xamarin.Forms 应用程序
【发布时间】:2019-06-08 11:07:22
【问题描述】:

去年我一直在 android studio 开发一个 android 应用程序。它从 10 月就已经在 Play Store 上架,并且有不少人在使用它。

我收到了许多为 iOS 创建相同应用程序的请求,因此经过大量研究后,我选择了 xamarin 表单,因为它更容易编码(因为我熟悉 c# 和 xaml)并且工作量更少同时维护两个平台的应用程序(即使移植代码需要一段时间)。

android 应用程序使用 sqlite 来实现数据持久性,xamarin 版本也会这样做。

我的问题是,一旦新应用发布,我如何将现有用户的 sqlite 数据库移植到新应用?有没有办法定义表/列名称,就像我在 android studio 版本中设置的一样?

目前,该应用程序具有将数据库导出到下载文件夹的功能,xamarin.forms 应用程序将从那里导入它。

我没有看到任何教程中的任何人在他们的 xamarin.forms sqlite 实现中明确定义表名和列名,所以我有点担心迈出这一步。

有没有办法确保现有数据库在导入 xamarin.forms 应用程序后立即可用?如果没有,有人可以指点我一段将数据从一个 dB 迁移到另一个 dB 的代码吗?

提前感谢您的宝贵时间。

问候

【问题讨论】:

  • 就像在每个数据库中一样,您应该定义表、键,然后读取数据。你检查过github.com/praeclarum/sqlite-net 吗?
  • 你用过安卓版的ORM吗?如果是这样,您应该检查表和列的命名方式,并相应地为您的 Xamarin.Forms 应用程序设置 ORM。您的问题有点难以回答,因为它缺少有关您当前 SQLite 设置的详细信息。如果您添加了数据库的结构或数据映射到的类,我会更容易给出答案。
  • @AlexCatana 我最近做了一个类似的实现,请添加有关您当前 SQLite 的更多信息,以便我可以正确回答这个问题

标签: android sqlite xamarin.forms


【解决方案1】:

随着我对 Xamarin.Forms 中的 SQlite 包更加熟悉,结果发现答案就像在模型中的属性上方添加 [Column("my_column")] 属性一样简单。这样,它将将该列命名为括号中指定的任何内容,并且我可以确保它与我在 Android Studio 的当前项目中拥有的数据库架构相匹配。

有点“呃!?”给我的时刻,但感谢所有花时间回答的人!

【讨论】:

    猜你喜欢
    • 2015-04-26
    • 1970-01-01
    • 2018-03-19
    • 2012-03-03
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多