【问题标题】:Using Xamarin.Android I want to sync sqlite with sql server使用 Xamarin.Android 我想将 sqlite 与 sql server 同步
【发布时间】:2015-10-19 22:08:42
【问题描述】:

我正在 Xamarin 中创建一个使用 Sqlite 的 Android 应用程序,我需要该应用程序将所有数据从 sql server 数据库同步到手机上的 sqlite 数据库。就教程或示例而言,是否有任何很好的参考资料?值得一提的是,手机的 sqlite 数据库将与服务器具有相同的架构。

【问题讨论】:

  • 我建议查看 Azure 移动服务和移动应用来处理这个问题:github.com/jamesmontemagno/MyExpenses-Sync 有很多很好的代码和视频内容。
  • 詹姆斯我确实有一个问题。我不需要为 azure 服务付费吗?我从中提取的数据库托管在我自己的网络服务器上。

标签: android sql-server sqlite xamarin


【解决方案1】:

在某些限制下,最接近的是带有离线同步的 Azure 移动服务,但它使用自己的 SQL Lite 和 SQL Server 实例,请参阅https://azure.microsoft.com/en-gb/documentation/articles/mobile-services-windows-store-dotnet-get-started-offline-data/

如果您想自己动手,那么您可能想在 SQL 服务器前面创建自己的 Web Api 来处理 CRUD 命令,并在您的应用程序中启动它。我们已经这样做了,但没有快速的指针,这完全取决于您的“主”数据源在哪里、有多少客户、冲突管理等。

这是一个很大的话题

【讨论】:

  • 那么服务器必须是我们自己的。这两个模式匹配 S 我可以在 SQLite 上预先创建数据库并让它与服务器匹配吗?这样会更简单吗?
  • 不是真的,你需要一个同步引擎或服务来完成所有工作,数据之间的比较,最后一次修改的时间,冲突的时间等等,我不认为这真的存在除非你自己创造。类似的东西 - sqlite-sync.com (但不要认为这会在 Xamarin 中工作,除非您创建自己的绑定)
  • 那么同步的方向是一种方式。
  • 你仍然需要'一些东西'来做到这一点,如果它是一种方法,那么在代码中更容易做到,但即使这样你也必须确定哪些记录已经改变,它们是插入、更新还是删除另一端,即使那样,你将如何与 SQL Server 交谈——它是否在同一个网络上?如果没有,您需要创建一个 web api 来安全地公开它。
  • 嗯,最简单的,在我本地的 sqllite 表中,我会添加三个字段 isNew、isModified 和 isDeleted,默认值为 0,然后在添加、编辑或删除一条记录。然后你需要定期运行的东西,查找任何值为 1 的记录,并使用 Restsharp 或类似于 POST、PUSH 或 DELETE 调用你的 web api 并发送数据。完成后将值重置为 0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 2021-08-30
  • 2010-10-06
  • 1970-01-01
相关资源
最近更新 更多