如何在NHibernate中同时提交两个数据库? - c#

我需要保持两个数据库的镜像,但是我无法使用SQL Server镜像。该项目使用NHibernate 2.2作为ORM。

有什么办法可以解决这个问题?例如:NHibernate可以同时保存到多个数据库的任何插件/扩展。

参考方案

在StackOverflow上有多个类似的问题。请参考this,this和this。

您必须创建两个SessionFactoryISession实例,每个数据库一个。此外,您应该使用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();
}

php session header()重定向后丢失 - php

这是我第一次尝试创建会话。另外,成功登录后,我使用header()函数重定向页面,但是在重定向的页面上,我不再有会话。有代码:建立工作阶段:function userLogin($user){ session_start(); $_SESSION['username'] = $user; header("Location: /~…

jQuery,会话和php session_id(); - php

我有一个session_id,用于在购物篮类型应用程序中标识用户。session_id作为会话ID存储在数据库中。当我更新购物车时,session_id,product_id和qty存储在购物篮表中。我试图将一个项目添加到购物篮,然后在屏幕上显示更新的购物篮,而无需使用jquery刷新页面。我是否将会话ID存储在一个隐藏的html字段中,或者是否有更好的方法…

在CodeRush中自动添加`using` - c#

我刚刚为Visual Studio安装了CodeRush Pro(评估版),可以说到目前为止我非常喜欢它。与Resharper相比,我真的只缺少一种功能。这是CodeRush处理using的方式。当我键入在使用中列出的某些程序包中未声明的某个类名时,CodeRush将其下划线标为红色(表示错误),但是如果我将光标悬停在它上面,它不会为我提供添加使用,它只是说…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…