Hi Espen Harlinn,
Yes, we have to evaluate the linq statement by our own. This is necessary because the mapping that you can do is OpenAccess specific and has to be used to generate the SQL. That does not mean that it is slow.
We have a strict separation between writing the query and specifying the resulting object graph. You might want to reuse the same query but you need different members from the result set. To achieve this separation we have our FetchPlans. You specify, per a use case, which data you need and OpenAccess uses this information for the query calculation but also in case of lazy loading. This makes you code very flexible, you can define such fetchplans without touching your query or use case implementation.
Please have a look here as well:
the Telerik team