When I look at the query that gets generated I see that there is a full select from the Users table with the list of UserIDs in the select clause. When the first query (that returns Orders) returns a large number of rows, the second query that prefetches users will become very inefficient.
In v.2.5 currently in beta, and soon will be released:
You can execlude fields from being fetched.
For example if you are using a PrefetchPath to fetch users along with Orders, you may add a List of fields to be execluded from the prefetched entity (only leave the LastName and FirstName, and execlude the rest). This parameter is now available in an overload of the prefetchPath.Add() method.
I was aware of the projections, but that is not a very straight forward solution, and the column names need to be hardcoded, what beats the purpose of llblgen (I could just right the sql directly in that case).
You can always use entityFields to get column names as:
So instead of writieing "StartDate" you can write => EmployeeFields.StartDate.Name
Anyway If you still want to use one query for fetching fields from more than one entity, I'd recommend using a TypedList or a DynamicList. That's why they were invented