使用NHibernate同步两个SqlExpress

时间:2010-01-28 09:41:04

标签: c# nhibernate

我正在创建一个简单的项目管理系统,它使用NHibernate进行对象存储。底层数据库是SQL express(至少目前用于开发)。

客户端可在台式机或笔记本电脑上运行。我知道我可以使用网络服务并仅将数据库存储在桌面上,但这会迫使桌面始终可用。

我目前正在考虑复制数据库,有两个“不同数据”的实例。为了澄清,我们不是在谈论一个有效的应用程序,它是一个原型。

实现这一目标的一种方法是以下过程:

  • 客户端:检查桌面数据库是否可用(通过Web服务)
  • 客户:如果是,请使用桌面存储,这里没问题
  • 客户端:如果没有,请使用自己的数据库作为存储
  • 客户端:定期轮询桌面,一旦启动,就会同步
  • 客户端:切换到桌面存储
  • ...
  • 桌面:在检查所需的同步之前,请勿尝试任何数据库操作
  • 桌面:如果需要同步,请执行此操作...

我现在的问题是,你会如何同步?假设4或5种类型的对象都具有GUID作为标识符。您是否总是手动“延迟加载”某种类型的所有对象并将它们提供给数据库。如果客户端数据库可能更新且不同步,您是否总是删除整个桌面数据库?

同样,我想强调一下,我没有假设任何冲突或陈旧数据,我基本上只是想“从客户端复制整个数据库”。你会用NHibernate吗?或者你会分开复制过程吗?

当我考虑它时,我的问题归结为:

NHibernate是否有任何功能:

SyncDBs_SourceWins_(SourceDB,TargetDB)

感谢您的帮助, 克里斯

1 个答案:

答案 0 :(得分:0)

不是NHibernate,但Sync Services for ADO.NET 2.0怎么样?

-sa