public List <Customer> UpdateRange(List <BenchmarkResult> benchmarkResults, List <Customer> customers)
        {
            var             clock = new Stopwatch();
            List <Customer> x;

            using (var context = FluentNHibernateHelper.OpenSession())
            {
                foreach (var c in customers)
                {
                    c.IsActive = true;
                }

                clock.Start();
                foreach (var c in customers)
                {
                    context.Update(c);
                }
            }
            clock.Stop();
            using (var context = FluentNHibernateHelper.OpenSession())
            {
                x = context.Query <Customer>().ToList();
            }
            benchmarkResults.Add(new BenchmarkResult()
            {
                Action = "NH Fluent UpdateRange", Entities = customers.Count, Performance = clock.ElapsedMilliseconds + " ms"
            });
            return(x);
        }
        public void Filtering(List <BenchmarkResult> benchmarkResults, List <Customer> customers)
        {
            var             clock = new Stopwatch();
            List <Customer> x;

            using (var context = FluentNHibernateHelper.OpenSession())
            {
                clock.Start();
                x = context.CreateCriteria <Customer>()
                    .Add(Restrictions.Eq("IsActive", true))
                    .List <Customer>().ToList();
            }
            clock.Stop();
            benchmarkResults.Add(new BenchmarkResult()
            {
                Action = "NH Fluent Where HQL", Entities = x.Count, Performance = clock.ElapsedMilliseconds + " ms"
            });
            ///////////////////////////////////////////////////////////////////////////
            clock = new Stopwatch();
            using (var context = FluentNHibernateHelper.OpenSession())
            {
                clock.Start();
                x = context.Query <Customer>().Where(x => x.IsActive).ToList();
            }
            clock.Stop();
            benchmarkResults.Add(new BenchmarkResult()
            {
                Action = "NH Fluent Where LINQ", Entities = x.Count, Performance = clock.ElapsedMilliseconds + " ms"
            });
        }
        public List <Customer> AddRange(List <BenchmarkResult> benchmarkResults, List <Customer> customers)
        {
            var clock = new Stopwatch();

            using (var context = FluentNHibernateHelper.OpenSession())
            {
                clock.Start();
                foreach (var c in customers)
                {
                    context.SaveOrUpdate(c);
                }
            }
            clock.Stop();
            benchmarkResults.Add(new BenchmarkResult()
            {
                Action = "NH Fluent AddRange", Entities = customers.Count, Performance = clock.ElapsedMilliseconds + " ms"
            });
            return(customers);
        }
        public void RemoveRange(List <BenchmarkResult> benchmarkResults, List <Customer> customers)
        {
            var             clock = new Stopwatch();
            List <Customer> x;

            using (var context = FluentNHibernateHelper.OpenSession())
            {
                clock.Start();
                context.CreateQuery("delete Customer c where c.CustomerID in (:deleteIds)")
                .SetParameterList("deleteIds", customers.Select(x => x.CustomerID))
                .ExecuteUpdate();
            }
            clock.Stop();
            using (var context = FluentNHibernateHelper.OpenSession())
            {
                x = context.Query <Customer>().ToList();
            }
            benchmarkResults.Add(new BenchmarkResult()
            {
                Action = "NH Fluent RemoveRange", Entities = customers.Count, Performance = clock.ElapsedMilliseconds + " ms"
            });
        }