NHibernate FlushMode.Commit自动保存脏对象

时间:2012-05-11 11:35:46

标签: nhibernate commit flush autosave

我好像错过了一些东西:

我有一个应用程序,它使用每个应用程序方法的会话并使用延迟加载。

我已经设置了会话FlushMode.Commit,似乎NHibernate仍然自动将我的脏对象保存到DB(SQLCe),尽管我从未开始事务并提交它。

谁能告诉我我做错了什么?

我的一些代码:

    public Repository(ISessionProvider sessionProvider)
    {
        _sessionProvider = sessionProvider;
        _session = _sessionProvider.OpenSession();
        _session.FlushMode = FlushMode.Commit;
    }

    public IList<T> GetAll<T>() where T : class
    {
        var criteria = _session.CreateCriteria<T>();
        var list = criteria.List<T>();
        return list;
    }

1 个答案:

答案 0 :(得分:0)

在我的UI中创建一个脏对象的时候,似乎有另一个线程正在刷新同一个会话,我想这只是我应用程序中的一个错误。

现在很好用,因为我需要Lazy功能,所以仍然使用每个应用程序的会话。