Well it churns out quite a few SQL statements.
The last statement is:
SELECT FIELD1, NAME, ID, FIELD2, FIELD3
FROM TABLENAME [LPA_L1]
WHERE ( ( ( ( [LPA_L1].[NAME] IN ('VALUE1', 'VALUE2')))))
Which returns all of the records.
I am quite pressed for time so I think I will just write a small class to return just the Id and the Name rather than the whole entity.
On a side note, is every SQL statement in the output actually executed? I noticed that even the simple anonymous type query outputs 3 separate SQL queries. The first one is perfect, the other two unnecessarily wrap the first SQL within sub queries.