Como posso fazer com que este SelectMany use uma associação?

Dado que tenho três tabelas (Customer, Orders e OrderLines) em um modelo Linq To Sql em que

Cliente - Um para Muitos -> Pedidos - Um para Muitos -> OrderLines

Quando eu uso

var customer = Customers.First();
var manyWay = from o in customer.CustomerOrders
              from l in o.OrderLines
              select l;

Eu vejo uma consulta recebendo o cliente, isso faz sentido. Então, vejo uma consulta para os pedidos do cliente e uma consulta única para cada pedido, obtendo as linhas do pedido, em vez de unir os dois. Total de n + 1 consultas (sem contar com a obtenção de cliente)

Mas se eu usar

var tableWay = from o in Orders
               from l in OrderLines
               where o.Customer == customer
               && l.Order == o
               select l;

Em vez de ver uma única consulta para cada pedido, obtendo as linhas do pedido, vejo uma única consulta unindo as duas tabelas. Total de 1 consulta (sem contar com o cliente)

Eu preferiria usar a primeira consulta Linq, pois parece mais legível para mim, mas por que o L2S não está ingressando nas tabelas como seria de esperar na primeira consulta? Usando o LINQPad, vejo que a segunda consulta está sendo compilada em um SelectMany, embora não haja alteração na primeira, não tenho certeza se isso é um indicador de algum problema na minha consult

questionAnswers(5)

yourAnswerToTheQuestion