public void ObjectValuesCanBeChangedInParentAndChildSubTransactions() { SetDatabaseModifyable(); ClassWithAllDataTypes cwadt = DomainObjectIDs.ClassWithAllDataTypes1.GetObject <ClassWithAllDataTypes> (); Assert.That(cwadt.Int32Property, Is.Not.EqualTo(7)); Assert.That(cwadt.Int16Property, Is.Not.EqualTo(8)); using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope()) { cwadt.Int32Property = 7; using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope()) { Assert.That(cwadt.Int32Property, Is.EqualTo(7)); cwadt.Int16Property = 8; ClientTransaction.Current.Commit(); } Assert.That(cwadt.Int32Property, Is.EqualTo(7)); Assert.That(cwadt.Int16Property, Is.EqualTo(8)); ClientTransaction.Current.Commit(); } Assert.That(cwadt.Int32Property, Is.EqualTo(7)); Assert.That(cwadt.Int16Property, Is.EqualTo(8)); TestableClientTransaction.Commit(); using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope()) { var objectInThisTransaction = cwadt.GetHandle().GetObject(); Assert.That(objectInThisTransaction.Int32Property, Is.EqualTo(7)); Assert.That(objectInThisTransaction.Int16Property, Is.EqualTo(8)); } }