NHibernate离线模式

时间:2011-02-11 15:39:13

标签: database nhibernate

我有一个问题 有没有办法在NHibernate中这样做: 如果数据库脱机(连接错误或其他)以在本地或其他位置保留所有更改,并且在数据库联机时重新同步这两个数据库。

怎么做? 感谢

2 个答案:

答案 0 :(得分:3)

这超出了NHibernate的范围。

您可以在更高级别的层(在Session上捕获错误并在其他地方保存的抽象)或在较低级别的层中执行它(实现隐藏连接详细信息的IDriver)。

两者都很复杂。更好的选择是使用具有复制支持的数据库(SqlServer就是一个例子),始终使用本地数据库,并让复制引擎处理同步。

当然,这会增加冲突管理的问题(无论如何都会发生在所有模式中)

答案 1 :(得分:0)

同意不在NH范围内的Diego。之后,解决方案可以使用命令模式更新修改请求并将可信任队列中的每个请求(例如MSMQ)排入队列,并在此队列末尾执行实际的数据库更新。当客户端应用程序不在NET时,队列会保留在连接恢复后立即刷新的修改。