NHibernate Session is closed
ISession session = NHibernateHelper.GetCurrentSession();ITransaction it = session.BeginTransaction();
bool flag = true;
try
{
VIP_RechargeBill entity = new VIP_RechargeBill();
entity.CreateTime = DateTime.Now;
entity.UpdateTime = DateTime.Now;
entity.RechargeId = RechargeId;
entity.RechargeValueTotal = Recharge;
entity.PresentValueTotal = Present;
entity.RechargeManager = user;
session.Save(entity);
VIP_CardRechargeDetail detail = new VIP_CardRechargeDetail();
detail.CreateTime = DateTime.Now;
detail.UpdateTime = DateTime.Now;
detail.RechargeBill = entity;
detail.Card = VIP_CardAccess.GetTarget(hitT_CardId);
detail.RechargeMode = SysdictbaseAccess.GetTarget(RechargeModeId);
detail.RechargeValue = Recharge;
detail.PresentValue = Present;
//==============RechargeValueOver和PresentValueOver保存当前冲值总额消费后的余额
detail.RechargeValueOver = Recharge;
detail.PresentValueOver = Present;
//==============
detail.PresentStartTime = PresentStartTime;
detail.RechargeManager = user;
detail.PayStatus = SysdictbaseAccess.GetTarget("未缴款");
detail.PayInfo = SysdictbaseAccess.GetTarget("未对帐");
session.Save(detail);
// 更改T_Card表金额总数
VIP_Card tCard = detail.Card;
tCard.RechargeValue += detail.RechargeValue;
tCard.PresentValue += detail.PresentValue;
tCard.CardStatus = SysdictbaseAccess.GetTarget("已启用");
session.Save(tCard);
it.Commit();
}
catch (Exception ex)
{
flag = false;
it.Rollback();
throw (ex);
}
NHibernateHelper.CloseSession();
return flag;
执行第二次SAVE(session.Save(detail);)操作的时候就报这个错了。试了各种方法,重新获得SESSION,SESSION在次reconnect.都不可以,在网上搜索也没找到解决办法额。。。求助!! NHibernate session --------------------编程问答-------------------- NHibernateHelper 基本上封装的问题 --------------------编程问答-------------------- 这是这个类
public sealed class NHibernateHelper
{
private const string CurrentSessionKey = "nhibernate.current_session";
private static readonly ISessionFactory sessionFactory;
static NHibernateHelper()
{
sessionFactory = new Configuration().Configure().BuildSessionFactory();
}
public static ISession GetCurrentSession()
{
HttpContext context = HttpContext.Current;
ISession currentSession = context.Items[CurrentSessionKey] as ISession;
if (currentSession == null)
{
currentSession = sessionFactory.OpenSession();
context.Items[CurrentSessionKey] = currentSession;
}
return currentSession;
}
public static void CloseSession()
{
HttpContext context = HttpContext.Current;
ISession currentSession = context.Items[CurrentSessionKey] as ISession;
if (currentSession == null)
{
return;
}
currentSession.Close();
context.Items.Remove(CurrentSessionKey);
}
public static void CloseSessionFactory()
{
if (sessionFactory != null)
{
sessionFactory.Close();
}
}
} --------------------编程问答-------------------- .求助。。。。。。。。。。。。
补充:.NET技术 , ASP.NET