public virtual void Test()
        {
            StoreItems(new string[] { "1", "2", "3" });
            Db().Commit();
            long initialTransactionVersionNumber = Db().Version();

            UpdateItem("2", "modified2");
            Db().Commit();
            long   updatedTransactionVersionNumber = Db().Version();
            IQuery q = Db().Query();

            q.Constrain(typeof(QueryingVersionFieldTestCase.Item));
            q.Descend(VirtualField.CommitTimestamp).Constrain(initialTransactionVersionNumber
                                                              ).Greater();
            // This part really isn't needed for this test case, but it shows, how changes
            // between two specific transaction commits can be queried.
            q.Descend(VirtualField.CommitTimestamp).Constrain(updatedTransactionVersionNumber
                                                              ).Smaller().Equal();
            IObjectSet objectSet = q.Execute();

            Assert.AreEqual(1, objectSet.Count);
            QueryingVersionFieldTestCase.Item item = (QueryingVersionFieldTestCase.Item)objectSet
                                                     .Next();
            Assert.AreEqual("modified2", item.name);
        }
 private void StoreItems(string[] names)
 {
     for (int i = 0; i < names.Length; i++)
     {
         QueryingVersionFieldTestCase.Item item = new QueryingVersionFieldTestCase.Item(names
                                                                                        [i]);
         Store(item);
     }
 }
		private void StoreItems(string[] names)
		{
			for (int i = 0; i < names.Length; i++)
			{
				QueryingVersionFieldTestCase.Item item = new QueryingVersionFieldTestCase.Item(names
					[i]);
				Store(item);
			}
		}
 private void UpdateItem(string originalName, string updatedName)
 {
     QueryingVersionFieldTestCase.Item item = QueryForItem(originalName);
     item.name = updatedName;
     Store(item);
 }