If you were to iterate over the results multiple times, returning it as is would cause IO to occur (since it's backed by an iterator that does that). ToList would avoid that cost by making it upfront.