我需要保持两个数据库的镜像,但我不能用 SQL Server 镜像来做到这一点。该项目使用 NHibernate 2.2 作为 ORM。
有没有办法解决这个问题?例如:NHibernate 的任何插件/扩展可以同时保存到多个数据库。
StackOverflow 上有多个类似的问题。参考这个,这个和这个。
您必须创建两个SessionFactoryandISession实例,每个数据库一个。此外,您应该TransactionScope针对其中的多个数据库使用和包装您的数据库操作。
以下代码是从“ Ricardo Peres ”对上述问题之一的回答中复制的:
using (TransactionScope tx = new TransactionScope())
{
using (ISession session1 = ...)
using (ITransaction tx1 = session.BeginTransaction())
{
...do work with session
tx1.Commit();
}
using (ISession session2 = ...)
using (ITransaction tx2 = session.BeginTransaction())
{
...do work with session
tx2.Commit();
}
tx.Complete();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |