public void SavingAndRetrieving()
        {
            var ticks = DateTime.Parse("23:59:59").TimeOfDay;

            var entity = new TimeAsTimeSpanClass
            {
                TimeSpanValue = ticks
            };

            using (ISession s = OpenSession())
                using (ITransaction tx = s.BeginTransaction())
                {
                    s.Save(entity);
                    tx.Commit();
                }

            TimeAsTimeSpanClass entityReturned;

            using (ISession s = OpenSession())
                using (ITransaction tx = s.BeginTransaction())
                {
                    entityReturned = s.CreateQuery("from TimeAsTimeSpanClass").UniqueResult <TimeAsTimeSpanClass>();

                    Assert.AreEqual(ticks, entityReturned.TimeSpanValue);
                    Assert.AreEqual(entityReturned.TimeSpanValue.Hours, ticks.Hours);
                    Assert.AreEqual(entityReturned.TimeSpanValue.Minutes, ticks.Minutes);
                    Assert.AreEqual(entityReturned.TimeSpanValue.Seconds, ticks.Seconds);
                }
        }
        public void LowerDigitsAreIgnored()
        {
            if (!Dialect.SupportsDateTimeScale)
            {
                Assert.Ignore("Lower digits cannot be ignored when dialect does not support scale");
            }

            var baseTime = new TimeSpan(0, 17, 55, 24, 548);
            var entity   = new TimeAsTimeSpanClass
            {
                TimeSpanWithScale = baseTime.Add(TimeSpan.FromTicks(TimeSpan.TicksPerMillisecond / 3))
            };

            Assert.That(entity.TimeSpanWithScale, Is.Not.EqualTo(baseTime));

            int id;

            using (var s = OpenSession())
                using (var t = s.BeginTransaction())
                {
                    s.Save(entity);
                    id = entity.Id;
                    t.Commit();
                }

            using (var s = OpenSession())
                using (var t = s.BeginTransaction())
                {
                    var retrieved = s.Load <TimeAsTimeSpanClass>(id);
                    Assert.That(retrieved.TimeSpanWithScale, Is.EqualTo(baseTime));
                    t.Commit();
                }
        }
		public void SavingAndRetrieving()
		{
			var ticks = DateTime.Parse("23:59:59").TimeOfDay;

			var entity = new TimeAsTimeSpanClass
			             	{
			             		TimeSpanValue = ticks
			             	};

			using (ISession s = OpenSession())
			using (ITransaction tx = s.BeginTransaction())
			{
				s.Save(entity);
				tx.Commit();
			}

			TimeAsTimeSpanClass entityReturned;

			using (ISession s = OpenSession())
			using (ITransaction tx = s.BeginTransaction())
			{
				entityReturned = s.CreateQuery("from TimeAsTimeSpanClass").UniqueResult<TimeAsTimeSpanClass>();
				
				Assert.AreEqual(ticks, entityReturned.TimeSpanValue);
				Assert.AreEqual(entityReturned.TimeSpanValue.Hours,ticks.Hours);
				Assert.AreEqual(entityReturned.TimeSpanValue.Minutes, ticks.Minutes);
				Assert.AreEqual(entityReturned.TimeSpanValue.Seconds, ticks.Seconds);
			}

			using (ISession s = OpenSession())
			using (ITransaction tx = s.BeginTransaction())
			{
				s.Delete(entityReturned);
				tx.Commit();
			}
		}