Please show us how your projectors look like, and the snippet to fetch. The framework can't emit TOP if you have joins in the query, which means duplicates can occur, so it has to filter on the client, as it can't emit DISTINCT. This shouldn't lead to timeouts in all cases, as it simply reads till it has read the # of items to read.