public void OracleDateType_WillWork()
        {
            using (var sf = NhibernateConfiguration.CreateSessionFactory())
                using (var session = sf.OpenSession())
                {
                    var date   = new DateTime(2017, 6, 8, 12, 10, 59);
                    var entity = new OptimizedEntity {
                        Id = "123456", SomeDate = date
                    };
                    session.Save(entity);
                    session.Flush();
                    session.Clear();

                    session.QueryOver <SlowEntity>()
                    .Where(x => x.SomeDate == date)
                    .SingleOrDefault().Id.Should().Be(entity.Id);

                    session.Delete(entity);
                    session.Flush();
                    session.Clear();

                    session.QueryOver <SlowEntity>()
                    .Where(x => x.SomeDate == date)
                    .List().Should().BeEmpty();
                }
        }
        public void SpeedTest()
        {
            Console.WriteLine("Starting OptimizedEntity");
            using (var sf = NhibernateConfiguration.CreateSessionFactory())
                using (var session = sf.OpenSession())
                {
                    var sw = Stopwatch.StartNew();

                    RepeatAction(() =>
                    {
                        session.QueryOver <OptimizedEntity>()
                        .Where(x => x.SomeDate == DateTime.Now)
                        .List();
                    });

                    Console.WriteLine("ElapsedMilliseconds: " + sw.ElapsedMilliseconds);
                }

            Console.WriteLine("Starting SlowEntity");
            using (var sf = NhibernateConfiguration.CreateSessionFactory())
                using (var session = sf.OpenSession())
                {
                    var sw = Stopwatch.StartNew();

                    RepeatAction(() =>
                    {
                        session.QueryOver <SlowEntity>()
                        .Where(x => x.SomeDate == DateTime.Now)
                        .List();
                    });

                    Console.WriteLine("ElapsedMilliseconds: " + sw.ElapsedMilliseconds);
                }
        }