我需要保持两个数据库的镜像,但是我无法使用SQL Server镜像。该项目使用NHibernate 2.2作为ORM。
有什么办法可以解决这个问题?例如:NHibernate可以同时保存到多个数据库的任何插件/扩展。
参考方案
在StackOverflow上有多个类似的问题。请参考this,this和this。
您必须创建两个SessionFactory
和ISession
实例,每个数据库一个。此外,您应该使用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万只当然实际上这是估算的,具体应…