c# - 在 Postgres SQL 连接失败时在本地保存数据的选项有哪些

标签 c# entity-framework postgresql database-connection

我正在构建一个 C# 应用程序,它使用云中的 PostgresSQL 数据库(9.3 版)进行存储。虽然我的办公室连接是光纤,而且对于数据库提供商来说非常稳定,但我的客户可能并非如此。

我使用的是 Devart Entity Developer 版本 5.5.164,当然还有 dot connect PostgreSQL 提供程序。

问题是,如果在使用应用程序时与数据库的连接失败,有哪些易于实现的选项可以将当前状态保存到 PC 本地(如果有),其次,当数据库恢复在线时是什么同步选项可确保本地PC上的数据成功写入数据库。

我考虑过主从 PostgreSQL 类型的设置,其中设置本地机器来为数据库提供服务,然后将每个更改复制到云端。但是客户不想管理另一个系统。所以这不是一个选择。

那么……有什么想法吗?

最佳答案

我尝试了 SQLite <> PostgreSQL 在线/离线设置。根据我的经验,我强烈建议考虑:

  1. 要在离线和在线之间同步的数据(基础)有多大(1 或 n 个表,只需插入或同时更新(冲突危险!)
  2. 您在每个 SQLite 和 PostgreSQL 中使用的数据类型?它们兼容吗?
  3. 您是否有可用的工具可以轻松地将一种数据库语言“翻译”成另一种数据库语言?

我最终决定在 Postgres 上运行所有东西。同时它也带来了新的挑战:大师之间的同步。冲突问题由 IT 系统之外的组织责任解决。

关于c# - 在 Postgres SQL 连接失败时在本地保存数据的选项有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22283493/

相关文章:

c# - 导航属性为空

sql - 将更新的列返回到数组变量中

database - 转义用户名中的破折号

c# - 如何将枚举类型映射到 tinyint

c# - 空字符串文字

c# - 如何在 C# 中将富文本框中的某些文本加粗

c# - .NET Core API key 和身份集成

c# - 将 WPF DataGrid 直接绑定(bind)到 EntityCollection<T>

java - 在数据库事务期间进行 api 调用不是一个好习惯吗?

c# - 运行时新建 TabItem