【问题标题】:nHibernate synchronize two databasesnHibernate 同步两个数据库
【发布时间】:2013-10-02 16:38:11
【问题描述】:

我在不同的服务器上有两个结构相同的数据库,并且必须双向同步它们。在数据库 1 中需要发送销售信息,在数据库 2 中需要从条目中发送信息。我需要与 nhibernate 进行同步,因为该系统可以与任何数据库一起使用:postgreSQL、mysql、oracle、sqlserver 等。

制作此应用程序的最佳策略是什么?

【问题讨论】:

  • 您是否已经尝试过?到目前为止,您有什么策略? SO 不是您获得现成解决方案的地方;)即使您没有不同的数据库系统,同步 2 个数据库也可能是一项非常讨厌的任务……我会不惜一切代价防止这种情况发生。
  • 我正在寻找建议。

标签: c# database nhibernate synchronize


【解决方案1】:

看来你需要弄清楚几件事:

  1. 为您需要同步的两个数据库启动会话工厂
  2. 识别需要同步的对象
  3. 将它们与合并命令同步

ISession.Merge()

  • 如果当前存在具有相同标识符的持久实例 与会话关联,将给定对象的状态复制到 持久化实例
  • 如果当前没有与 会话,尝试从数据库中加载它,或者创建一个新的持久化 实例
  • 持久化实例被返回
  • 给定的实例没有与会话关联,它 保持分离

当我们在数据库之间归档数据时,我们实际上会做类似的事情。对您来说最棘手的部分可能是确定需要同步的内容。

【讨论】:

  • 你用一些设计模式来做吗?
  • @Bruno 做哪一部分?
  • 合并和复制有什么区别
  • @Bruno 我不确定你所说的复制是什么意思。我知道 ISession 中没有名为 Replicate 的方法。
猜你喜欢
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多