public void MainTest()
        {
            Assert.AreEqual(0, new[] { 1, 2 }.Take(1).Skip(1).Count());

            using (var session = Domain.OpenSession())
                using (var trs = session.OpenTransaction()) {
                    var e1 = new MyEntity();
                    var e2 = new MyEntity();
                    CompilableProvider rsMyEntities = Domain.Model.Types[typeof(MyEntity)]
                                                      .Indexes.PrimaryIndex.GetQuery()
                                                      .Filter(t => t.GetValue <int>(0) == e1.Id || t.GetValue <int>(0) == e2.Id);

                    Assert.AreEqual(2, rsMyEntities.Count(Session.Current));

                    Assert.AreEqual(0, rsMyEntities.Take(1).Skip(1).Count(Session.Current));
                    Assert.AreEqual(1, rsMyEntities.Skip(1).Take(1).Count(Session.Current));
                    Assert.AreEqual(1, rsMyEntities.Take(1).Take(2).Count(Session.Current));
                    Assert.AreEqual(0, rsMyEntities.Skip(1).Skip(1).Count(Session.Current));
                    trs.Complete();
                }
        }