While the Entity Framework only allows you to use Include(String), DevForce goes a step further and allows you to also use simple lambda expressions (i.e. Include(c => c.Orders) - as in your example).
However, you can't use more complex lambda expressions. Our extension to the Include syntax (Include<TQuery>(TQuery,String)) is only an translation wrapper, that allow simple lambda’s to be translated into the Entity Framework’s string based Include syntax (Include(String)). Therefore, we can only support what EF’s Include(String) does.
You can still accomplish the functionality you want by using an anonymous type:
mgr.Customers.Where(c => c.CustomerID == id)
.Select(c => new { Customer = c, Orders = c.Orders.Where(o => o.EmployeeID == 5) })
.ToList() // this is necessary so the query is executed on the server and the related objects are retrieved and stored
// at this point all objects satisfying the query (Customer and Orders) are in the cache
.Select(a => a.Customer); // this is executed locally (data already in the cache)
The above will ensure that the objects related (Orders where [EmployeeID] == 5) to the primary target of this query (Customer where [CustomerID] == id) are also stored in the entity cache.