0

我似乎在这里错过了一些东西:

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

我已经设置了会话 FlushMode.Commit 并且似乎 NHibernate 仍然自动将我的脏对象保存到数据库(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;
    }
4

1 回答 1

0

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

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

于 2012-05-23T14:33:21.617 回答