NHibernate Get()后跟Flush还是Commit?

| 我的ISession对象的FlushMode是FlushMode.Commit。 我使用此处定义的工作单元和存储库模式: http://nhforge.org/wikis/patternsandpractices/nhibernate-and-the-unit-of-work-pattern.aspx 我记得曾经看到过一些示例,其中有些人立即调用Get(),然后进行刷新或事务提交。我们是不是只是摇摇欲坠,还是有这样做的理由? 根据我的测试:
    [TestMethod]
    public void TestMethod1()
    {
        Employee e;

        IRepository<Employee> empRepo;
        using(UnitOfWork.Start(Enums.Databases.MyDatabase))
        {
            empRepo = new Repository<Employee>();
            e = empRepo.GetByID(21);
        }

        Debug.WriteLine(e.UserName);
    }
我的GetByID存储库函数仅调用Session.Get(id),我可以在输出窗口中查看用户名(在会话被杀死之后)...那么,在Get()之后进行任何类型的Flush或事务提交有什么意义呢?我想知道那里是否有储蓄。     
已邀请:
NHibernate假定所有数据库操作都在事务内完成,因此人们可以显式使用它们,而不是让NHibernate RDBMS隐式使用它们。 Ayende在他的NH Prof Alerts文章中更详细地解释了这一点:不鼓励使用隐式事务。 编辑:今天学到了一些新东西。不是NHibernate使用隐式事务,而是数据库。     

要回复问题请先登录注册