Just do the order details condition in the usual way:
from o in orders
join od from orderdetails on o.id = od.orderid
into details
where details.status == 'A'
select new { Order = o, Details = details}
(NB. Details is a sequence, with each matching details record, LINQ operators like First and FirstOrDefault can be use to extract just one.)
Or use an expression as the data source
from o in orders
join od from orderdetails.Where(d => d.Status == 'A') on o.id = od.orderid
into details
select new { Order = o, Details = details}
Or even, use another comprehension expression as the source expression:
from o in orders
join od from (from d in orderdetails
where d.Status == 'A'
select d)
on o.id = od.orderid
into details
select new { Order = o, Details = details}
(Setting you DataContext
's Log
property allows you to see the SQL so you can compare what SQL is actually generated.)
EDIT: Change to use Group Join (... into var
) to get the outer join (rather than an inner join).