var expr =
  from c in customers
  join o in (
      from c in customers
          from o in c.Orders
          join p in products
              on o.IdProduct equals p.IdProduct
          select new { c.Name, o.IdProduct,
                      OrderAmount = o.Quantity * p.Price }
      ) on c.Name equals o.Name
      into orders
  select new { c.Name,
              MaxOrderAmount =
                orders
                .Aggregate((a, o) => a.OrderAmount > o.OrderAmount ?
                                  a : o)
                .OrderAmount };
