如何使用Isession进行更新和插入?

时间:2014-03-11 06:28:28

标签: wcf nhibernate isession

我有一个使用nHibernate的WCF服务。该方法在table1中保存一个新条目并更新table2中的条目。

我在两个方法中使用了session,并且全局声明了会话。

以下是代码:

private static ISessionFactory SessionFactory;
ISession session = NHibernateHelper.GetCurrentSession();

//webmethod 1
{
  using (ITransaction tranx = session.BeginTransaction())
  {
   session.Save(table1);
   tranx.Commit();
  }
}

//webmethod2
{
  using (ITransaction tranx = session.BeginTransaction())
  { 
   session.Save(table2);
   session.Update(table1);
   tranx.Commit();
  }
}

这里是NHibernateHelper代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NHibernate;
using NHibernate.Cfg;
using System.Reflection;


namespace API
{
    public class NHibernateHelper
    {
        private static ISessionFactory SessionFactory;

        private static void OpenSession()
        {
            Configuration configuration = new Configuration().Configure();
            SessionFactory = configuration.BuildSessionFactory();
        }

        public static ISession GetCurrentSession()
        {
            if (SessionFactory == null)
                NHibernateHelper.OpenSession();

            return SessionFactory.OpenSession();
        }

        public static void CloseSessionFactory()
        {
            if (SessionFactory != null)
                SessionFactory.Close();
        }
    }
}

我做错了什么?尝试更新table1时,我在第二种方法中遇到错误。

0 个答案:

没有答案