NHibernate Flush()不更新数据库中的记录

时间:2013-12-03 09:42:48

标签: nhibernate fluent-nhibernate

我有一个控制台应用程序,其中有一个方法用于批量更新数据库中的记录。我们将NHibernate用于我们的webrole,并在单独的DLL中使用DAL。我在这个控制台应用程序中使用此DLL来更新数据库,但它无法正常工作。在经典ASP.NET中执行时,相同的方法非常有效。

我的代码草图如下:

var foo= Data.GetFoo.GetFoo2("xyz");
//update some records in foo
Data.GetFoo().Flush();

foo被正确获取但Flush不会更新数据库。 我已经尝试将属性current_session_context_class更改为web,thead,thread-static,但都无济于事。没有任何例外。

编辑: 我认为问题在于使用控制台应用管理会话。目前的安排使用IHttpModule其中

context.BeginRequest += BeginRequest;
context.EndRequest += EndRequest;
Init( HttpApplication context )方法中调用

。我现在的问题是,我认为应该使用这个模块来使用Console App,我仍然想弄清楚。

@OskarBerggren我有一个扩展IHttpModule的类。这是我传递给SessionProvider类的内容。沿着这条路走下去:

   protected ISession session
    {
        get
        {
            ISession _session = NHttpModule.GetCurrentSession(); 
            return _session;
        }
    }

0 个答案:

没有答案