(from o in ... select o).Take (1).FetchMany (o => o.OrderItems)
This should generate the following fetch query model:
from x in (from o in ... select o).Take (1) select x.OrderItems
Currently, it generates:
(from o in ... from x in o.OrderItems select x).Take (1)
The latter only selects one OrdeItem, the correct query model would select all order items of the first order to be returned.
A PropertyPath starts at an IdentifierReference and holds a ReadOnlyCollection of MemberInfos representing the member chain.
Example:
from o in ...<Order> select o.Customer.OrderItems => new PropertyPath (new IdentifierReference (mainFromClause), new[] {memberof (Order.Customer), memberof (Customer.OrderItems) })