I've been grabbing source off github so I don't have patch with failing 
test, but here's the test source that you can put into the Projections test 
file in linq directory

        [Test]
        public void CanUseSelectMethod()
        {
            var query = db.Users.Skip(0).Take(2).Select(x => new 
UserDto(x.Id, x.Name));

            Assert.IsNotEmpty(query.ToList());
        }

What does work is this:
    var query = db.Users.Select(x => new UserDto(x.Id, 
x.Name)).Skip(0).Take(2);

I'm not sure if this is actually a bug (it kind of is for MS sql, not sure 
about others), but a NotSupportedException is thrown if you do paging before 
a projection, everything works fine if paging is done after the projection. 
Makes sense, but can easily be fixed by applying skip/take to whole query, 
where as this i believe would try to page over the entities then build a 
projection off the paged result, which doesn't work in sql server.

So yeah, if it's not a bug, maybe just document it somewhere somehow for 
people to find when googling, threw me through a bit of a loop trying to 
figure out what was going on.

-Darren

Reply via email to