The following code demonstrates a misleading situation in which data is committed to the database, even though commit is never called on a transaction.
Could anyone explain why?
[TestFixture]
public class TestFixture
{
        [Test]
        public void Test()
        {
            var config = DoConfiguration();
            using(var factory = config.BuildSessionFactory())
            {
                using (var session = factory.OpenSession())
                {
                    CallSessionContext.Bind(session);
                    using(new TransactionScope())
                    {
                        using (session.BeginTransaction())
                        {
                            var myEntity = session
                               .CreateQuery("from myEntity")
                               .List<MyEntity>()[0];
                            myEntity.Name = "test name";
                        }
                        var myEntity2 = session
                           .CreateQuery("from myEntity")
                           .List<MyEntity>()[0];
                        myEntity2.Name = "test name";
                        session.Flush();
                    }
                    CallSessionContext.Unbind(factory);
                }
            }
        }
} 
 
     
    